2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-03 04:36:36 +00:00

20_PET: add new RESIDENTS submodule

git-svn-id: https://svn.fhem.de/fhem/trunk@19323 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
jpawlowski 2019-05-04 11:50:15 +00:00
parent 48bcbca04b
commit ab80de2530
9 changed files with 1898 additions and 316 deletions

View File

@ -1,5 +1,6 @@
# 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.
- new: 20_PET: new RESIDENTS module type for pets at home
- bugfix: 73_AutoShuttersControl: fix bugs and logic problems
- feature: 98_weekprofile: HMCCU support
- change: 10_MYSENSORS_DEVICE: enhance support for SetExtensions;

View File

@ -48,6 +48,9 @@ sub RESIDENTS_UpdateReadings (@) {
my $state_totalGuests = 0;
my $state_totalGuestsPresent = 0;
my $state_totalGuestsAbsent = 0;
my $state_totalPets = 0;
my $state_totalPetsPresent = 0;
my $state_totalPetsAbsent = 0;
my $state_totalRoommates = 0;
my $state_totalRoommatesPresent = 0;
my $state_totalRoommatesAbsent = 0;
@ -63,8 +66,10 @@ sub RESIDENTS_UpdateReadings (@) {
my $residentsDevs_wayhomeDelayed = "-";
my $residentsDevs_totalAbsent = "-";
my $residentsDevs_totalPresent = "-";
my $residentsDevs_totalAbsentGuest = "-";
my $residentsDevs_totalPresentGuest = "-";
my $residentsDevs_totalAbsentGuests = "-";
my $residentsDevs_totalPresentGuests = "-";
my $residentsDevs_totalAbsentPets = "-";
my $residentsDevs_totalPresentPets = "-";
my $residentsDevs_totalAbsentRoommates = "-";
my $residentsDevs_totalPresentRoommates = "-";
my $residents_home = "-";
@ -78,8 +83,10 @@ sub RESIDENTS_UpdateReadings (@) {
my $residents_wayhomeDelayed = "-";
my $residents_totalAbsent = "-";
my $residents_totalPresent = "-";
my $residents_totalAbsentGuest = "-";
my $residents_totalPresentGuest = "-";
my $residents_totalAbsentGuests = "-";
my $residents_totalPresentGuests = "-";
my $residents_totalAbsentPets = "-";
my $residents_totalPresentPets = "-";
my $residents_totalAbsentRoommates = "-";
my $residents_totalPresentRoommates = "-";
my $wayhome = 0;
@ -97,6 +104,11 @@ sub RESIDENTS_UpdateReadings (@) {
if ( defined( $hash->{GUESTS} )
&& $hash->{GUESTS} ne "" );
my @registeredPets =
split( /,/, $hash->{PETS} )
if ( defined( $hash->{PETS} )
&& $hash->{PETS} ne "" );
# count child states for ROOMMATE devices
foreach my $roommate (@registeredRoommates) {
$state_total++;
@ -349,6 +361,254 @@ sub RESIDENTS_UpdateReadings (@) {
}
}
# count child states for PET devices
foreach my $pet (@registeredPets) {
$state_total++;
$state_totalPets++;
my $petName =
AttrVal( $pet, AttrVal( $pet, "rp_realname", "group" ), "" );
Log3 $name, 5, "RESIDENTS $name: considering $pet for state change";
if ( ReadingsVal( $pet, "state", "initialized" ) eq "home" ) {
$state_home++;
$residentsDevs_home .= "," . $pet
if ( $residentsDevs_home ne "-" );
$residentsDevs_home = $pet
if ( $residentsDevs_home eq "-" );
$residents_home .= ", " . $petName
if ( $petName ne "" && $residents_home ne "-" );
$residents_home = $petName
if ( $petName ne "" && $residents_home eq "-" );
$state_totalPresent++;
$state_totalPetsPresent++;
$residentsDevs_totalPresent .= "," . $pet
if ( $residentsDevs_totalPresent ne "-" );
$residentsDevs_totalPresent = $pet
if ( $residentsDevs_totalPresent eq "-" );
$residentsDevs_totalPresentPets .= "," . $pet
if ( $residentsDevs_totalPresentPets ne "-" );
$residentsDevs_totalPresentPets = $pet
if ( $residentsDevs_totalPresentPets eq "-" );
$residents_totalPresent .= ", " . $petName
if ( $petName ne "" && $residents_totalPresent ne "-" );
$residents_totalPresent = $petName
if ( $petName ne "" && $residents_totalPresent eq "-" );
$residents_totalPresentPets .= ", " . $petName
if ( $petName ne ""
&& $residents_totalPresentPets ne "-" );
$residents_totalPresentPets = $petName
if ( $petName ne ""
&& $residents_totalPresentPets eq "-" );
}
elsif ( ReadingsVal( $pet, "state", "initialized" ) eq "gotosleep" ) {
$state_gotosleep++;
$residentsDevs_gotosleep .= "," . $pet
if ( $residentsDevs_gotosleep ne "-" );
$residentsDevs_gotosleep = $pet
if ( $residentsDevs_gotosleep eq "-" );
$residents_gotosleep .= ", " . $petName
if ( $petName ne "" && $residents_gotosleep ne "-" );
$residents_gotosleep = $petName
if ( $petName ne "" && $residents_gotosleep eq "-" );
$state_totalPresent++;
$state_totalPetsPresent++;
$residentsDevs_totalPresent .= "," . $pet
if ( $residentsDevs_totalPresent ne "-" );
$residentsDevs_totalPresent = $pet
if ( $residentsDevs_totalPresent eq "-" );
$residentsDevs_totalPresentPets .= "," . $pet
if ( $residentsDevs_totalPresentPets ne "-" );
$residentsDevs_totalPresentPets = $pet
if ( $residentsDevs_totalPresentPets eq "-" );
$residents_totalPresent .= ", " . $petName
if ( $petName ne "" && $residents_totalPresent ne "-" );
$residents_totalPresent = $petName
if ( $petName ne "" && $residents_totalPresent eq "-" );
$residents_totalPresentPets .= ", " . $petName
if ( $petName ne ""
&& $residents_totalPresentPets ne "-" );
$residents_totalPresentPets = $petName
if ( $petName ne ""
&& $residents_totalPresentPets eq "-" );
}
elsif ( ReadingsVal( $pet, "state", "initialized" ) eq "asleep" ) {
$state_asleep++;
$residentsDevs_asleep .= "," . $pet
if ( $residentsDevs_asleep ne "-" );
$residentsDevs_asleep = $pet
if ( $residentsDevs_asleep eq "-" );
$residents_asleep .= ", " . $petName
if ( $petName ne "" && $residents_asleep ne "-" );
$residents_asleep = $petName
if ( $petName ne "" && $residents_asleep eq "-" );
$state_totalPresent++;
$state_totalPetsPresent++;
$residentsDevs_totalPresent .= "," . $pet
if ( $residentsDevs_totalPresent ne "-" );
$residentsDevs_totalPresent = $pet
if ( $residentsDevs_totalPresent eq "-" );
$residentsDevs_totalPresentPets .= "," . $pet
if ( $residentsDevs_totalPresentPets ne "-" );
$residentsDevs_totalPresentPets = $pet
if ( $residentsDevs_totalPresentPets eq "-" );
$residents_totalPresent .= ", " . $petName
if ( $petName ne "" && $residents_totalPresent ne "-" );
$residents_totalPresent = $petName
if ( $petName ne "" && $residents_totalPresent eq "-" );
$residents_totalPresentPets .= ", " . $petName
if ( $petName ne ""
&& $residents_totalPresentPets ne "-" );
$residents_totalPresentPets = $petName
if ( $petName ne ""
&& $residents_totalPresentPets eq "-" );
}
elsif ( ReadingsVal( $pet, "state", "initialized" ) eq "awoken" ) {
$state_awoken++;
$residentsDevs_awoken .= "," . $pet
if ( $residentsDevs_awoken ne "-" );
$residentsDevs_awoken = $pet
if ( $residentsDevs_awoken eq "-" );
$residents_awoken .= ", " . $petName
if ( $petName ne "" && $residents_awoken ne "-" );
$residents_awoken = $petName
if ( $petName ne "" && $residents_awoken eq "-" );
$state_totalPresent++;
$state_totalPetsPresent++;
$residentsDevs_totalPresent .= "," . $pet
if ( $residentsDevs_totalPresent ne "-" );
$residentsDevs_totalPresent = $pet
if ( $residentsDevs_totalPresent eq "-" );
$residentsDevs_totalPresentPets .= "," . $pet
if ( $residentsDevs_totalPresentPets ne "-" );
$residentsDevs_totalPresentPets = $pet
if ( $residentsDevs_totalPresentPets eq "-" );
$residents_totalPresent .= ", " . $petName
if ( $petName ne "" && $residents_totalPresent ne "-" );
$residents_totalPresent = $petName
if ( $petName ne "" && $residents_totalPresent eq "-" );
$residents_totalPresentPets .= ", " . $petName
if ( $petName ne ""
&& $residents_totalPresentPets ne "-" );
$residents_totalPresentPets = $petName
if ( $petName ne ""
&& $residents_totalPresentPets eq "-" );
}
elsif ( ReadingsVal( $pet, "state", "initialized" ) eq "absent" ) {
$state_absent++;
$residentsDevs_absent .= "," . $pet
if ( $residentsDevs_absent ne "-" );
$residentsDevs_absent = $pet
if ( $residentsDevs_absent eq "-" );
$residents_absent .= ", " . $petName
if ( $petName ne "" && $residents_absent ne "-" );
$residents_absent = $petName
if ( $petName ne "" && $residents_absent eq "-" );
$state_totalAbsent++;
$state_totalPetsAbsent++;
$residentsDevs_totalAbsent .= "," . $pet
if ( $residentsDevs_totalAbsent ne "-" );
$residentsDevs_totalAbsent = $pet
if ( $residentsDevs_totalAbsent eq "-" );
$residentsDevs_totalAbsentPets .= "," . $pet
if ( $residentsDevs_totalAbsentPets ne "-" );
$residentsDevs_totalAbsentPets = $pet
if ( $residentsDevs_totalAbsentPets eq "-" );
$residents_totalAbsent .= ", " . $petName
if ( $petName ne "" && $residents_totalAbsent ne "-" );
$residents_totalAbsent = $petName
if ( $petName ne "" && $residents_totalAbsent eq "-" );
$residents_totalAbsentPets .= ", " . $petName
if ( $petName ne ""
&& $residents_totalAbsentPets ne "-" );
$residents_totalAbsentPets = $petName
if ( $petName ne ""
&& $residents_totalAbsentPets eq "-" );
}
elsif ( ReadingsVal( $pet, "state", "initialized" ) eq "gone" ) {
$state_gone++;
$residentsDevs_gone .= "," . $pet
if ( $residentsDevs_gone ne "-" );
$residentsDevs_gone = $pet
if ( $residentsDevs_gone eq "-" );
$residents_gone .= ", " . $petName
if ( $petName ne "" && $residents_gone ne "-" );
$residents_gone = $petName
if ( $petName ne "" && $residents_gone eq "-" );
$state_totalAbsent++;
$state_totalPetsAbsent++;
$residentsDevs_totalAbsent .= "," . $pet
if ( $residentsDevs_totalAbsent ne "-" );
$residentsDevs_totalAbsent = $pet
if ( $residentsDevs_totalAbsent eq "-" );
$residentsDevs_totalAbsentPets .= "," . $pet
if ( $residentsDevs_totalAbsentPets ne "-" );
$residentsDevs_totalAbsentPets = $pet
if ( $residentsDevs_totalAbsentPets eq "-" );
$residents_totalAbsent .= ", " . $petName
if ( $petName ne "" && $residents_totalAbsent ne "-" );
$residents_totalAbsent = $petName
if ( $petName ne "" && $residents_totalAbsent eq "-" );
$residents_totalAbsentPets .= ", " . $petName
if ( $petName ne ""
&& $residents_totalAbsentPets ne "-" );
$residents_totalAbsentPets = $petName
if ( $petName ne ""
&& $residents_totalAbsentPets eq "-" );
}
if ( ReadingsVal( $pet, "wakeup", "0" ) > 0 ) {
$wakeup++;
$residentsDevs_wakeup .= "," . $pet
if ( $residentsDevs_wakeup ne "-" );
$residentsDevs_wakeup = $pet
if ( $residentsDevs_wakeup eq "-" );
$residents_wakeup .= ", " . $petName
if ( $petName ne "" && $residents_wakeup ne "-" );
$residents_wakeup = $petName
if ( $petName ne "" && $residents_wakeup eq "-" );
}
if ( ReadingsVal( $pet, "wayhome", "0" ) > 0 ) {
$wayhome++;
$residentsDevs_wayhome .= "," . $pet
if ( $residentsDevs_wayhome ne "-" );
$residentsDevs_wayhome = $pet
if ( $residentsDevs_wayhome eq "-" );
$residents_wayhome .= ", " . $petName
if ( $petName ne "" && $residents_wayhome ne "-" );
$residents_wayhome = $petName
if ( $petName ne "" && $residents_wayhome eq "-" );
if ( ReadingsVal( $pet, "wayhome", "0" ) == 2 ) {
$wayhomeDelayed++;
$residentsDevs_wayhomeDelayed .= "," . $pet
if ( $residentsDevs_wayhomeDelayed ne "-" );
$residentsDevs_wayhomeDelayed = $pet
if ( $residentsDevs_wayhomeDelayed eq "-" );
$residents_wayhomeDelayed .= ", " . $petName
if ( $petName ne ""
&& $residents_wayhomeDelayed ne "-" );
$residents_wayhomeDelayed = $petName
if ( $petName ne ""
&& $residents_wayhomeDelayed eq "-" );
}
}
}
# count child states for GUEST devices
foreach my $guest (@registeredGuests) {
$state_guestDev++;
@ -365,16 +625,16 @@ sub RESIDENTS_UpdateReadings (@) {
$state_totalGuests++;
$state_total++;
$residentsDevs_totalPresentGuest .= "," . $guest
if ( $residentsDevs_totalPresentGuest ne "-" );
$residentsDevs_totalPresentGuest = $guest
if ( $residentsDevs_totalPresentGuest eq "-" );
$residents_totalPresentGuest .= ", " . $guestName
$residentsDevs_totalPresentGuests .= "," . $guest
if ( $residentsDevs_totalPresentGuests ne "-" );
$residentsDevs_totalPresentGuests = $guest
if ( $residentsDevs_totalPresentGuests eq "-" );
$residents_totalPresentGuests .= ", " . $guestName
if ( $guestName ne ""
&& $residents_totalPresentGuest ne "-" );
$residents_totalPresentGuest = $guestName
&& $residents_totalPresentGuests ne "-" );
$residents_totalPresentGuests = $guestName
if ( $guestName ne ""
&& $residents_totalPresentGuest eq "-" );
&& $residents_totalPresentGuests eq "-" );
$residentsDevs_totalPresent .= "," . $guest
if ( $residentsDevs_totalPresent ne "-" );
@ -395,16 +655,16 @@ sub RESIDENTS_UpdateReadings (@) {
$state_totalGuests++;
$state_total++;
$residentsDevs_totalPresentGuest .= "," . $guest
if ( $residentsDevs_totalPresentGuest ne "-" );
$residentsDevs_totalPresentGuest = $guest
if ( $residentsDevs_totalPresentGuest eq "-" );
$residents_totalPresentGuest .= ", " . $guestName
$residentsDevs_totalPresentGuests .= "," . $guest
if ( $residentsDevs_totalPresentGuests ne "-" );
$residentsDevs_totalPresentGuests = $guest
if ( $residentsDevs_totalPresentGuests eq "-" );
$residents_totalPresentGuests .= ", " . $guestName
if ( $guestName ne ""
&& $residents_totalPresentGuest ne "-" );
$residents_totalPresentGuest = $guestName
&& $residents_totalPresentGuests ne "-" );
$residents_totalPresentGuests = $guestName
if ( $guestName ne ""
&& $residents_totalPresentGuest eq "-" );
&& $residents_totalPresentGuests eq "-" );
$residentsDevs_totalPresent .= "," . $guest
if ( $residentsDevs_totalPresent ne "-" );
@ -425,16 +685,16 @@ sub RESIDENTS_UpdateReadings (@) {
$state_totalGuests++;
$state_total++;
$residentsDevs_totalPresentGuest .= "," . $guest
if ( $residentsDevs_totalPresentGuest ne "-" );
$residentsDevs_totalPresentGuest = $guest
if ( $residentsDevs_totalPresentGuest eq "-" );
$residents_totalPresentGuest .= ", " . $guestName
$residentsDevs_totalPresentGuests .= "," . $guest
if ( $residentsDevs_totalPresentGuests ne "-" );
$residentsDevs_totalPresentGuests = $guest
if ( $residentsDevs_totalPresentGuests eq "-" );
$residents_totalPresentGuests .= ", " . $guestName
if ( $guestName ne ""
&& $residents_totalPresentGuest ne "-" );
$residents_totalPresentGuest = $guestName
&& $residents_totalPresentGuests ne "-" );
$residents_totalPresentGuests = $guestName
if ( $guestName ne ""
&& $residents_totalPresentGuest eq "-" );
&& $residents_totalPresentGuests eq "-" );
$residentsDevs_totalPresent .= "," . $guest
if ( $residentsDevs_totalPresent ne "-" );
@ -455,16 +715,16 @@ sub RESIDENTS_UpdateReadings (@) {
$state_totalGuests++;
$state_total++;
$residentsDevs_totalPresentGuest .= "," . $guest
if ( $residentsDevs_totalPresentGuest ne "-" );
$residentsDevs_totalPresentGuest = $guest
if ( $residentsDevs_totalPresentGuest eq "-" );
$residents_totalPresentGuest .= ", " . $guestName
$residentsDevs_totalPresentGuests .= "," . $guest
if ( $residentsDevs_totalPresentGuests ne "-" );
$residentsDevs_totalPresentGuests = $guest
if ( $residentsDevs_totalPresentGuests eq "-" );
$residents_totalPresentGuests .= ", " . $guestName
if ( $guestName ne ""
&& $residents_totalPresentGuest ne "-" );
$residents_totalPresentGuest = $guestName
&& $residents_totalPresentGuests ne "-" );
$residents_totalPresentGuests = $guestName
if ( $guestName ne ""
&& $residents_totalPresentGuest eq "-" );
&& $residents_totalPresentGuests eq "-" );
$residentsDevs_totalPresent .= "," . $guest
if ( $residentsDevs_totalPresent ne "-" );
@ -485,16 +745,16 @@ sub RESIDENTS_UpdateReadings (@) {
$state_totalGuests++;
$state_total++;
$residentsDevs_totalAbsentGuest .= "," . $guest
if ( $residentsDevs_totalAbsentGuest ne "-" );
$residentsDevs_totalAbsentGuest = $guest
if ( $residentsDevs_totalAbsentGuest eq "-" );
$residents_totalAbsentGuest .= ", " . $guestName
$residentsDevs_totalAbsentGuests .= "," . $guest
if ( $residentsDevs_totalAbsentGuests ne "-" );
$residentsDevs_totalAbsentGuests = $guest
if ( $residentsDevs_totalAbsentGuests eq "-" );
$residents_totalAbsentGuests .= ", " . $guestName
if ( $guestName ne ""
&& $residents_totalAbsentGuest ne "-" );
$residents_totalAbsentGuest = $guestName
&& $residents_totalAbsentGuests ne "-" );
$residents_totalAbsentGuests = $guestName
if ( $guestName ne ""
&& $residents_totalAbsentGuest eq "-" );
&& $residents_totalAbsentGuests eq "-" );
$residentsDevs_totalAbsent .= "," . $guest
if ( $residentsDevs_totalAbsent ne "-" );
@ -553,29 +813,56 @@ sub RESIDENTS_UpdateReadings (@) {
readingsBulkUpdateIfChanged( $hash, "residentsTotalGuests",
$state_totalGuests );
readingsBulkUpdateIfChanged( $hash, "residentsTotalPets",
$state_totalPets );
readingsBulkUpdateIfChanged( $hash, "residentsTotalGuestsPresent",
$state_totalGuestsPresent );
readingsBulkUpdateIfChanged( $hash, "residentsTotalPetsPresent",
$state_totalPetsPresent );
readingsBulkUpdateIfChanged(
$hash,
"residentsTotalGuestsPresentDevs",
$residentsDevs_totalPresentGuest
$residentsDevs_totalPresentGuests
);
readingsBulkUpdateIfChanged(
$hash,
"residentsTotalPetsPresentDevs",
$residentsDevs_totalPresentPets
);
readingsBulkUpdateIfChanged( $hash, "residentsTotalGuestsPresentNames",
$residents_totalPresentGuest );
$residents_totalPresentGuests );
readingsBulkUpdateIfChanged( $hash, "residentsTotalPetsPresentNames",
$residents_totalPresentPets );
readingsBulkUpdateIfChanged( $hash, "residentsTotalGuestsAbsent",
$state_totalGuestsAbsent );
readingsBulkUpdateIfChanged( $hash, "residentsTotalPetsAbsent",
$state_totalPetsAbsent );
readingsBulkUpdateIfChanged(
$hash,
"residentsTotalGuestsAbsentDevs",
$residentsDevs_totalAbsentGuest
$residentsDevs_totalAbsentGuests
);
readingsBulkUpdateIfChanged(
$hash,
"residentsTotalPetsAbsentDevs",
$residentsDevs_totalAbsentPets
);
readingsBulkUpdateIfChanged( $hash, "residentsTotalGuestsAbsentNames",
$residents_totalAbsentGuest );
$residents_totalAbsentGuests );
readingsBulkUpdateIfChanged( $hash, "residentsTotalPetsAbsentNames",
$residents_totalAbsentPets );
readingsBulkUpdateIfChanged( $hash, "residentsTotalRoommates",
$state_totalRoommates );
@ -761,6 +1048,7 @@ sub RESIDENTS_UpdateReadings (@) {
# none
elsif ($state_totalGuests == 0
&& $state_totalPets == 0
&& $state_totalRoommates == 0
&& $state_gone == 0
&& $state_absent == 0
@ -784,7 +1072,7 @@ sub RESIDENTS_UpdateReadings (@) {
: "absent";
Log3 $name, 4,
"RESIDENTS $name: calculation result - residentsTotal:$state_total residentsTotalRoommates:$state_totalRoommates residentsTotalRoommatesPresent:$state_totalRoommatesPresent residentsTotalRoommatesAbsent:$state_totalRoommatesAbsent residentsTotalGuests:$state_totalGuests residentsTotalGuestsPresent:$state_totalGuestsPresent residentsTotalGuestsAbsent:$state_totalGuestsAbsent residentsTotalPresent:$state_totalPresent residentsTotalAbsent:$state_totalAbsent residentsHome:$state_home residentsGotosleep:$state_gotosleep residentsAsleep:$state_asleep residentsAwoken:$state_awoken residentsAbsent:$state_absent residentsGone:$state_gone presence:$newpresence state:$newstate";
"RESIDENTS $name: calculation result - residentsTotal:$state_total residentsTotalRoommates:$state_totalRoommates residentsTotalRoommatesPresent:$state_totalRoommatesPresent residentsTotalRoommatesAbsent:$state_totalRoommatesAbsent residentsTotalGuests:$state_totalGuests residentsTotalPets:$state_totalPets residentsTotalGuestsPresent:$state_totalGuestsPresent residentsTotalPetsPresent:$state_totalPetsPresent residentsTotalGuestsAbsent:$state_totalGuestsAbsent residentsTotalPetsAbsent:$state_totalPetsAbsent residentsTotalPresent:$state_totalPresent residentsTotalAbsent:$state_totalAbsent residentsHome:$state_home residentsGotosleep:$state_gotosleep residentsAsleep:$state_asleep residentsAwoken:$state_awoken residentsAbsent:$state_absent residentsGone:$state_gone presence:$newpresence state:$newstate";
# safe current time
my $datetime = FmtDateTime(time);
@ -903,8 +1191,8 @@ sub RESIDENTS_UpdateReadings (@) {
=pod
=item helper
=item summary combines ROOMMATE and GUEST devices to a residential community
=item summary_de fasst ROOMMATE und GUEST Geräte zu einer Wohngemeinschaft zusammen
=item summary combines ROOMMATE, GUEST and PET devices to a residential community
=item summary_de fasst ROOMMATE, GUEST und PET Geräte zu einer Wohngemeinschaft zusammen
=begin html
<p>
@ -919,7 +1207,7 @@ sub RESIDENTS_UpdateReadings (@) {
<code>define &lt;rgr_ResidentsName&gt; RESIDENTS</code><br>
<br>
Provides a special virtual device to represent a group of individuals living at your home.<br>
It locically combines individual states of <a href="#ROOMMATE">ROOMMATE</a> and <a href="#GUEST">GUEST</a> devices and allows state changes for all members.<br>
It locically combines individual states of <a href="#ROOMMATE">ROOMMATE</a>, <a href="#GUEST">GUEST</a> and <a href="#PET">PET</a> devices and allows state changes for all members.<br>
Based on the current state and other readings, you may trigger other actions within FHEM.<br>
<br>
Example:<br>
@ -938,12 +1226,18 @@ sub RESIDENTS_UpdateReadings (@) {
<li>
<b>addGuest</b> &nbsp;&nbsp;-&nbsp;&nbsp; creates a new GUEST device and adds it to the current RESIDENTS group. Just enter the dummy name and there you go.
</li>
<li>
<b>addPet</b> &nbsp;&nbsp;-&nbsp;&nbsp; creates a new PET device and adds it to the current RESIDENTS group. Just enter the dummy name and there you go.
</li>
<li>
<b>addRoommate</b> &nbsp;&nbsp;-&nbsp;&nbsp; creates a new ROOMMATE device and adds it to the current RESIDENTS group. Just enter the first name and there you go.
</li>
<li>
<b>removeGuest</b> &nbsp;&nbsp;-&nbsp;&nbsp; shows all GUEST members and allows to delete their dummy devices easily.
</li>
<li>
<b>removePet</b> &nbsp;&nbsp;-&nbsp;&nbsp; shows all PET members and allows to delete their dummy devices easily.
</li>
<li>
<b>removeRoommate</b> &nbsp;&nbsp;-&nbsp;&nbsp; shows all ROOMMATE members and allows to delete their dummy devices easily.
</li>
@ -955,7 +1249,7 @@ sub RESIDENTS_UpdateReadings (@) {
</li>
</ul>
<ul>
<u>Note:</u> If you would like to restrict access to admin set-commands (-> addGuest, addRoommate, removeGuest, create) you may set your FHEMWEB instance's attribute allowedCommands like 'set,set-user'.
<u>Note:</u> If you would like to restrict access to admin set-commands (-> addGuest, addPet, addRoommate, removeGuest, removePet, create) you may set your FHEMWEB instance's attribute allowedCommands like 'set,set-user'.
The string 'set-user' will ensure only non-admin set-commands can be executed when accessing FHEM using this FHEMWEB instance.
</ul>
</ul><br>
@ -990,7 +1284,7 @@ sub RESIDENTS_UpdateReadings (@) {
</li>
</ul><br>
<br>
Note: State 'none' cannot explicitly be set. Setting state to 'gone' will be handled as 'none' for GUEST member devices.
Note: State 'none' cannot explicitly be set. Setting state to 'gone' will be handled as 'none' for GUEST or PET member devices.
</ul>
</ul><br>
<br>
@ -1160,6 +1454,27 @@ sub RESIDENTS_UpdateReadings (@) {
<li>
<b>residentsTotalGuestsPresentNames</b> - device alias of all active guests who are currently at home
</li>
<li>
<b>residentsTotalPets</b> - number of active pets who are currently treated as part of the residents scope
</li>
<li>
<b>residentsTotalPetsAbsent</b> - number of all active pets who are currently underway
</li>
<li>
<b>residentsTotalPetsAbsentDevs</b> - device name of all active pets who are currently underway
</li>
<li>
<b>residentsTotalPetsAbsentNames</b> - device alias of all active pets who are currently underway
</li>
<li>
<b>residentsTotalPetsPresent</b> - number of all active pets who are currently at home
</li>
<li>
<b>residentsTotalPetsPresentDevs</b> - device name of all active pets who are currently at home
</li>
<li>
<b>residentsTotalPetsPresentNames</b> - device alias of all active pets who are currently at home
</li>
<li>
<b>residentsTotalRoommates</b> - number of residents treated as being a permanent resident
</li>
@ -1230,7 +1545,7 @@ sub RESIDENTS_UpdateReadings (@) {
<b>RESIDENTS Toolkit</b><br>
<ul>
<ul>
Using set-command <code>create</code> you may add pre-configured configurations to your RESIDENTS, <a href="#ROOMMATE">ROOMMATE</a> or <a href="#GUEST">GUEST</a> devices for your convenience.<br>
Using set-command <code>create</code> you may add pre-configured configurations to your RESIDENTS, <a href="#ROOMMATE">ROOMMATE</a>, <a href="#GUEST">GUEST</a> or <a href="#PET">PET</a> devices for your convenience.<br>
The following commands are currently available:<br>
<br>
<li>
@ -1268,7 +1583,7 @@ sub RESIDENTS_UpdateReadings (@) {
<i>wakeupResetdays</i> - if wakeupDefaultTime is set you may restrict timer reset to specific days only. Mon=1,Tue=2,Wed=3,Thu=4,Fri=5,Sat=6,Sun=0 (optional)
</li>
<li>
<i>wakeupUserdevice</i> - backlink to RESIDENTS, ROOMMATE or GUEST device to check it's status (mandatory)
<i>wakeupUserdevice</i> - backlink to RESIDENTS, ROOMMATE, GUEST or PET device to check its status (mandatory)
</li>
<li>
<i>wakeupWaitPeriod</i> - waiting period threshold in minutes until wake-up program may be triggered again, e.g. if you manually set an earlier wake-up time than normal while using wakeupDefaultTime. Does not apply in case wake-up time was changed during this period; defaults to 360 minutes / 6h (optional)
@ -1295,7 +1610,7 @@ sub RESIDENTS_UpdateReadings (@) {
<code>define &lt;rgr_ResidentsName&gt; RESIDENTS</code><br>
<br>
Stellt ein spezielles virtuelles Device bereit, um eine Gruppe von Personen zu repr&auml;sentieren, die zusammen wohnen.<br>
Es kombiniert dabei logisch die individuellen Status von <a href="#ROOMMATE">ROOMMATE</a> und <a href="#GUEST">GUEST</a> Devices und erlaubt den Status f&uuml;r alle Mitglieder zeitgleich zu &auml;ndern. Basierend auf dem aktuellen Status und anderen Readings k&ouml;nnen andere Aktionen innerhalb von FHEM angestoßen werden.<br>
Es kombiniert dabei logisch die individuellen Status von <a href="#ROOMMATE">ROOMMATE</a>, <a href="#GUEST">GUEST</a> und <a href="#PET">PET</a> Devices und erlaubt den Status f&uuml;r alle Mitglieder zeitgleich zu &auml;ndern. Basierend auf dem aktuellen Status und anderen Readings k&ouml;nnen andere Aktionen innerhalb von FHEM angestoßen werden.<br>
<br>
Beispiele:<br>
<ul>
@ -1313,12 +1628,18 @@ sub RESIDENTS_UpdateReadings (@) {
<li>
<b>addGuest</b> &nbsp;&nbsp;-&nbsp;&nbsp; erstellt ein neues GUEST Device und f&uuml;gt es der aktuellen RESIDENTS Gruppe hinzu. Einfach den Platzhalternamen eingeben und das wars.
</li>
<li>
<b>addPet</b> &nbsp;&nbsp;-&nbsp;&nbsp; erstellt ein neues PET Device und f&uuml;gt es der aktuellen RESIDENTS Gruppe hinzu. Einfach den Platzhalternamen eingeben und das wars.
</li>
<li>
<b>addRoommate</b> &nbsp;&nbsp;-&nbsp;&nbsp; erstellt ein neues ROOMMATE Device und f&uuml;gt es der aktuellen RESIDENTS Gruppe hinzu. Einfach den Vornamen eingeben und das wars.
</li>
<li>
<b>removeGuest</b> &nbsp;&nbsp;-&nbsp;&nbsp; zeigt alle Mitglieder vom Typ GUEST an und erm&ouml;glicht ein einfaches l&ouml;schen des dazugeh&ouml;rigen Dummy Devices.
</li>
<li>
<b>removePet</b> &nbsp;&nbsp;-&nbsp;&nbsp; zeigt alle Mitglieder vom Typ PET an und erm&ouml;glicht ein einfaches l&ouml;schen des dazugeh&ouml;rigen Dummy Devices.
</li>
<li>
<b>removeRoommate</b> &nbsp;&nbsp;-&nbsp;&nbsp; zeigt alle Mitglieder vom Typ ROOMMATE an und erm&ouml;glicht ein einfaches l&ouml;schen des dazugeh&ouml;rigen Dummy Devices.
</li>
@ -1330,7 +1651,7 @@ sub RESIDENTS_UpdateReadings (@) {
</li>
</ul>
<ul>
<u>Hinweis:</u> Sofern der Zugriff auf administrative set-Kommandos (-> addGuest, addRoommate, removeGuest, create) eingeschr&auml;nkt werden soll, kann in einer FHEMWEB Instanz das Attribut allowedCommands &auml;hnlich wie 'set,set-user' erweitert werden.
<u>Hinweis:</u> Sofern der Zugriff auf administrative set-Kommandos (-> addGuest, addPet, addRoommate, removeGuest, removePet, create) eingeschr&auml;nkt werden soll, kann in einer FHEMWEB Instanz das Attribut allowedCommands &auml;hnlich wie 'set,set-user' erweitert werden.
Die Zeichenfolge 'set-user' stellt dabei sicher, dass beim Zugriff auf FHEM &uuml;ber diese FHEMWEB Instanz nur nicht-administrative set-Kommandos ausgef&uuml;hrt werden k&ouml;nnen.
</ul>
</ul><br>
@ -1365,7 +1686,7 @@ sub RESIDENTS_UpdateReadings (@) {
</li>
</ul><br>
<br>
Hinweis: Der Status 'none' kann nicht explizit gesetzt werden. Das setzen von 'gone' wird bei Mitgliedern vom Typ GUEST als 'none' behandelt.
Hinweis: Der Status 'none' kann nicht explizit gesetzt werden. Das setzen von 'gone' wird bei Mitgliedern vom Typ GUEST oder PET als 'none' behandelt.
</ul>
</ul><br>
<br>
@ -1535,6 +1856,27 @@ sub RESIDENTS_UpdateReadings (@) {
<li>
<b>residentsTotalGuestsPresentNames</b> - Ger&auml;tealias der aktiven G&auml;ste, die momentan zu Hause sind
</li>
<li>
<b>residentsTotalPets</b> - Anzahl der aktiven G&auml;ste, welche momentan du den Bewohnern dazugez&auml;hlt werden
</li>
<li>
<b>residentsTotalPetsAbsent</b> - Anzahl der aktiven G&auml;ste, die momentan unterwegs sind
</li>
<li>
<b>residentsTotalPetsAbsentDevs</b> - Ger&auml;tename der aktiven G&auml;ste, die momentan unterwegs sind
</li>
<li>
<b>residentsTotalPetsAbsentNames</b> - Ger&auml;tealias der aktiven G&auml;ste, die momentan unterwegs sind
</li>
<li>
<b>residentsTotalPetsPresent</b> - Anzahl der aktiven G&auml;ste, die momentan zu Hause sind
</li>
<li>
<b>residentsTotalPetsPresentDevs</b> - Ger&auml;tename der aktiven G&auml;ste, die momentan zu Hause sind
</li>
<li>
<b>residentsTotalPetsPresentNames</b> - Ger&auml;tealias der aktiven G&auml;ste, die momentan zu Hause sind
</li>
<li>
<b>residentsTotalRoommates</b> - Anzahl der Bewohner, die als permanente Bewohner behandelt werden
</li>
@ -1605,7 +1947,7 @@ sub RESIDENTS_UpdateReadings (@) {
<b>RESIDENTS Toolkit</b><br>
<ul>
<ul>
Mit dem set-Kommando <code>create</code> k&ouml;nnen zur Vereinfachung vorkonfigurierte Konfigurationen zu RESIDENTS, <a href="#ROOMMATE">ROOMMATE</a> oder <a href="#GUEST">GUEST</a> Ger&auml;ten hinzugef&uuml;gt werden.<br>
Mit dem set-Kommando <code>create</code> k&ouml;nnen zur Vereinfachung vorkonfigurierte Konfigurationen zu RESIDENTS, <a href="#ROOMMATE">ROOMMATE</a>, <a href="#GUEST">GUEST</a> oder <a href="#PET">PET</a> Ger&auml;ten hinzugef&uuml;gt werden.<br>
Die folgenden Kommandos sind momentan verf&uuml;gbar:<br>
<br>
<li>
@ -1643,7 +1985,7 @@ sub RESIDENTS_UpdateReadings (@) {
<i>wakeupResetdays</i> - sofern wakeupDefaultTime gesetzt ist, kann der Reset hier auf betimmte Tage begrenzt werden. Mon=1,Di=2,Mi=3,Do=4,Fr=5,Sa=6,So=0 (optional)
</li>
<li>
<i>wakeupUserdevice</i> - Backlink zum RESIDENTS, ROOMMATE oder GUEST Ger&auml;t, um dessen Status zu pr&uuml;fen (notwendig)
<i>wakeupUserdevice</i> - Backlink zum RESIDENTS, ROOMMATE, GUEST oder PET Ger&auml;t, um dessen Status zu pr&uuml;fen (notwendig)
</li>
<li>
<i>wakeupWaitPeriod</i> - Schwelle der Wartezeit in Minuten bis das Weckprogramm erneut ausgef&uuml;hrt werden kann, z.B. wenn manuell eine fr&uuml;here Weckzeit gesetzt wurde als normal w&auml;hrend wakeupDefaultTime verwendet wird. Greift nicht, wenn die Weckzeit w&auml;hrend dieser Zeit ge&auml;ndert wurde; Standard ist 360 Minuten / 6h (optional)

View File

@ -149,13 +149,23 @@ sub GUEST_Initialize($) {
</ul><br>
<br>
<ul>
<u>Synchronizing presence with other ROOMMATE or GUEST devices</u><br>
<u>Synchronizing presence with other GUEST, PET or ROOMMATE devices</u><br>
<br>
<ul>
If you always leave or arrive at your house together with other roommates or guests, you may enable a synchronization of your presence state for certain individuals.<br>
If you always leave or arrive at your house together with other roommates, guests or pets, you may enable a synchronization of your presence state for certain individuals.<br>
By setting attribute rg_passPresenceTo, those individuals will follow your presence state changes to 'home', 'absent' or 'gone' as you do them with your own device.<br>
<br>
Please note that individuals with current state 'none' or 'gone' (in case of roommates) will not be touched.
Please note that individuals with current state 'gone' or 'none' (in case of guests) will not be touched.
</ul>
</ul><br>
<br>
<ul>
<u>Synchronizing state with other GUEST, PET or ROOMMATE devices</u><br>
<br>
<ul>
To sync each and every status change that is _not_ related to leaving or arriving at your house, you may set attribute rg_passStateTo.<br>
<br>
Please note that individuals with current state 'gone' or 'none' (in case of guests) will not be touched.
</ul>
</ul><br>
<br>
@ -217,10 +227,13 @@ sub GUEST_Initialize($) {
<b>rg_noDuration</b> - may be used to disable continuous, non-event driven duration timer calculation (see readings durTimer*)
</li>
<li>
<b>rg_passPresenceTo</b> - synchronize presence state with other GUEST or GUEST devices; separte devices by space
<b>rg_passStateTo</b> - synchronize home state with other GUEST, PET or ROOMMATE devices; separte devices by space
</li>
<li>
<b>rg_presenceDevices</b> - take over presence state from any other FHEM device. Separate more than one device with comma meaning ALL of them need to be either present or absent to trigger update of this ROOMMATE device. You may optionally add a reading name separated by :, otherwise reading name presence and state will be considered.
<b>rg_passPresenceTo</b> - synchronize presence state with other GUEST, PET or ROOMMATE devices; separte devices by space
</li>
<li>
<b>rg_presenceDevices</b> - take over presence state from any other FHEM device. Separate more than one device with comma meaning ALL of them need to be either present or absent to trigger update of this GUEST device. You may optionally add a reading name separated by :, otherwise reading name presence and state will be considered.
</li>
<li>
<b>rg_realname</b> - whenever GUEST wants to use the realname it uses the value of attribute alias or group; defaults to group
@ -328,12 +341,10 @@ sub GUEST_Initialize($) {
<li>
<b>wayhome</b> - depending on current location, it can become '1' if individual is on his/her way back home
</li>
<li>
<br>
<br>
The following readings will be set to '-' if state was changed to 'none':<br>
lastArrival, lastDurAbsence, lastLocation, lastMood, location, mood
</li>
<br>
<br>
The following readings will be set to '-' if state was changed to 'none':<br>
lastArrival, lastDurAbsence, lastLocation, lastMood, location, mood
</ul>
</ul>
</ul>
@ -449,16 +460,26 @@ sub GUEST_Initialize($) {
</ul><br>
<br>
<ul>
<u>Anwesenheit mit anderen GUEST oder ROOMMATE Devices synchronisieren</u><br>
<br>
<u>Anwesenheit mit anderen GUEST, PET oder ROOMMATE Devices synchronisieren</u><br />
<br />
<ul>
Wenn Sie immer zusammen mit anderen Mitbewohnern oder G&auml;sten das Haus verlassen oder erreichen, k&ouml;nnen Sie ihren Status ganz einfach auf andere Mitbewohner &uuml;bertragen.<br>
Durch das Setzen des Attributs rg_PassPresenceTo folgen die dort aufgef&uuml;hrten Mitbewohner ihren eigenen Status&auml;nderungen nach 'home', 'absent' oder 'gone'.<br>
<br>
Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'none' oder 'gone' (im Falle von ROOMMATE Devices) nicht beachtet werden.
Wenn Sie immer zusammen mit anderen Mitbewohnern oder G&auml;sten das Haus verlassen oder erreichen, k&ouml;nnen Sie ihren Status ganz einfach auf andere Mitbewohner &uuml;bertragen.<br />
Durch das Setzen des Attributs rr_PassPresenceTo folgen die dort aufgef&uuml;hrten Mitbewohner ihren eigenen Status&auml;nderungen nach 'home', 'absent' oder 'gone'.<br />
<br />
Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'gone' oder 'none' (im Falle von G&auml;sten) nicht beachtet werden.
</ul>
</ul><br>
<br>
</ul><br />
<br />
<ul>
<u>Status zu Hause mit anderen GUEST, PET oder ROOMMATE Devices synchronisieren</u><br />
<br />
<ul>
Um jeden Statuswechsel zu synchronisieren, welcher _nicht_ dem erreichen oder verlassen des Hauses entspricht, kann das Attribut rr_passStateTo gesetzt werden.<br />
<br />
Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'gone' oder 'none' (im Falle von G&auml;sten) nicht beachtet werden.
</ul>
</ul><br />
<br />
<ul>
<u>Zusammenhang zwischen Aufenthaltsort/Location und Anwesenheit/Presence</u><br>
<br>
@ -517,7 +538,10 @@ sub GUEST_Initialize($) {
<b>rg_noDuration</b> - deaktiviert die kontinuierliche, nicht Event-basierte Berechnung der Zeitspannen (siehe Readings durTimer*)
</li>
<li>
<b>rg_passPresenceTo</b> - synchronisiere die Anwesenheit mit anderen GUEST oder ROOMMATE Devices; mehrere Devices durch Leerzeichen trennen
<b>rg_passStateTo</b> - synchronisiere den Status zu Hause mit anderen GUEST, PET oder ROOMMATE Devices; mehrere Devices durch Leerzeichen trennen
</li>
<li>
<b>rg_passPresenceTo</b> - synchronisiere die Anwesenheit mit anderen GUEST, PET oder ROOMMATE Devices; mehrere Devices durch Leerzeichen trennen
</li>
<li>
<b>rg_presenceDevices</b> - &uuml;bernehmen des presence Status von einem anderen FHEM Device. Bei mehreren Devices diese mit Komma trennen, um ein Update des GUEST Devices auszul&ouml;sen, sobald ALLE Devices entweder absent oder present sind. Optional kann auch durch : abgetrennt ein Reading Name angegeben werden, ansonsten werden die Readings presence und state ber&uuml;cksichtigt.
@ -628,11 +652,10 @@ sub GUEST_Initialize($) {
<li>
<b>wayhome</b> - abh&auml;ngig vom aktullen Aufenthaltsort, kann der Wert '1' werden, wenn die Person auf dem weg zur&uuml;ck nach Hause ist
</li>
<li>
<br>
Die folgenden Readings werden auf '-' gesetzt, sobald der Status auf 'none' steht:<br>
lastArrival, lastDurAbsence, lastLocation, lastMood, location, mood
</li>
<br>
<br>
Die folgenden Readings werden auf '-' gesetzt, sobald der Status auf 'none' steht:<br>
lastArrival, lastDurAbsence, lastLocation, lastMood, location, mood
</ul>
</ul>
</ul>

678
fhem/FHEM/20_PET.pm Normal file
View File

@ -0,0 +1,678 @@
###############################################################################
# $Id$
package main;
use strict;
use warnings;
use Data::Dumper;
use Time::Local;
require RESIDENTStk;
our (@RESIDENTStk_attr);
# initialize ##################################################################
sub PET_Initialize($) {
my ($hash) = @_;
$hash->{InitDevFn} = "RESIDENTStk_InitializeDev";
$hash->{DefFn} = "RESIDENTStk_Define";
$hash->{UndefFn} = "RESIDENTStk_Undefine";
$hash->{SetFn} = "RESIDENTStk_Set";
$hash->{AttrFn} = "RESIDENTStk_Attr";
$hash->{NotifyFn} = "RESIDENTStk_Notify";
$hash->{AttrPrefix} = "rp_";
$hash->{AttrList} =
"disable:1,0 disabledForIntervals do_not_notify:1,0 "
. "rp_states:multiple-strict,home,gotosleep,asleep,awoken,absent,gone "
. $readingFnAttributes;
foreach (@RESIDENTStk_attr) {
$hash->{AttrList} .= " " . $hash->{AttrPrefix} . $_;
}
return FHEM::Meta::InitMod( __FILE__, $hash );
}
1;
=pod
=item helper
=item summary special virtual device to represent a pet in your home
=item summary_DE spezielles virtuelles Device, welches ein Haustier zu Hause repr&auml;sentiert
=begin html
<a name="PET" id="PET"></a>
<h3>PET</h3>
<ul>
<a name="PETdefine" id="PETdefine"></a> <b>Define</b>
<ul>
<code>define &lt;rp_PetName&gt; PET [&lt;device name(s) of resident group(s)&gt;]</code><br>
<br>
Provides a special virtual device to represent a pet in your home.<br>
Based on the current state and other readings, you may trigger other actions within FHEM.<br>
<br>
Used by superior module <a href="#RESIDENTS">RESIDENTS</a> but may also be used stand-alone.<br>
<br />
Use comma separated list of resident device names for multi-membership (see example below).<br />
<br>
Example:<br>
<ul>
<code># Standalone<br>
define rp_Pet PET<br>
<br>
# Typical group member<br>
define rp_Pet PET rgr_Residents # to be member of resident group rgr_Residents<br>
<br>
# Member of multiple groups<br>
define rp_Pet PET rgr_Residents,rgr_Pets # to be member of resident group rgr_Residents and rgr_Pets</code>
</ul>
</ul><br>
<br>
<a name="PETset" id="PETset"></a> <b>Set</b>
<ul>
<code>set &lt;rp_PetName&gt; &lt;command&gt; [&lt;parameter&gt;]</code><br>
<br>
Currently, the following commands are defined.<br>
<ul>
<li>
<b>location</b> &nbsp;&nbsp;-&nbsp;&nbsp; sets reading 'location'; see attribute rp_locations to adjust list shown in FHEMWEB
</li>
<li>
<b>mood</b> &nbsp;&nbsp;-&nbsp;&nbsp; sets reading 'mood'; see attribute rp_moods to adjust list shown in FHEMWEB
</li>
<li>
<b>state</b> &nbsp;&nbsp;home,gotosleep,asleep,awoken,absent,gone&nbsp;&nbsp; switch between states; see attribute rp_states to adjust list shown in FHEMWEB
</li>
<li>
<b>create</b>
<li><i>locationMap</i>&nbsp;&nbsp; add a pre-configured weblink device using showing a Google Map if readings locationLat+locationLong are present.</li>
<li><i>wakeuptimer</i>&nbsp;&nbsp; add several pre-configurations provided by RESIDENTS Toolkit. See separate section in <a href="#RESIDENTS">RESIDENTS module commandref</a> for details.</li>
</li>
</ul>
<ul>
<u>Note:</u> If you would like to restrict access to admin set-commands (-> create) you may set your FHEMWEB instance's attribute allowedCommands like 'set,set-user'.
The string 'set-user' will ensure only non-admin set-commands can be executed when accessing FHEM using this FHEMWEB instance.
</ul>
</ul><br>
<br>
<ul>
<u>Possible states and their meaning</u><br>
<br>
<ul>
This module differs between 6 states:<br>
<br>
<ul>
<li>
<b>home</b> - individual is present at home and awake
</li>
<li>
<b>gotosleep</b> - individual is on it's way to bed
</li>
<li>
<b>asleep</b> - individual is currently sleeping
</li>
<li>
<b>awoken</b> - individual just woke up from sleep
</li>
<li>
<b>absent</b> - individual is not present at home but will be back shortly
</li>
<li>
<b>gone</b> - individual is away from home for longer period
</li>
</ul>
</ul>
</ul><br>
<br>
<ul>
<u>Presence correlation to location</u><br>
<br>
<ul>
Under specific circumstances, changing state will automatically change reading 'location' as well.<br>
<br>
Whenever presence state changes from 'absent' to 'present', the location is set to 'home'. If attribute rp_locationHome was defined, first location from it will be used as home location.<br>
<br>
Whenever presence state changes from 'present' to 'absent', the location is set to 'underway'. If attribute rp_locationUnderway was defined, first location from it will be used as underway location.
</ul>
</ul><br>
<br>
<ul>
<u>Auto Gone</u><br>
<br>
<ul>
Whenever an individual is set to 'absent', a trigger is started to automatically change state to 'gone' after a specific timeframe.<br>
Default value is 16 hours.<br>
<br>
This behaviour can be customized by attribute rp_autoGoneAfter.
</ul>
</ul><br>
<br>
<ul>
<u>Synchronizing presence with other PET, GUEST or ROOMMATE devices</u><br>
<br>
<ul>
If you always leave or arrive at your house together with other roommates, guests or pets, you may enable a synchronization of your presence state for certain individuals.<br>
By setting attribute rp_passPresenceTo, those individuals will follow your presence state changes to 'home', 'absent' or 'gone' as you do them with your own device.<br>
<br>
Please note that individuals with current state 'gone' or 'none' (in case of guests) will not be touched.
</ul>
</ul><br>
<br>
<ul>
<u>Synchronizing state with other PET, GUEST or ROOMMATE devices</u><br>
<br>
<ul>
To sync each and every status change that is _not_ related to leaving or arriving at your house, you may set attribute rp_passStateTo.<br>
<br>
Please note that individuals with current state 'gone' or 'none' (in case of guests) will not be touched.
</ul>
</ul><br>
<br>
<ul>
<u>Location correlation to state</u><br>
<br>
<ul>
Under specific circumstances, changing location will have an effect on the actual state as well.<br>
<br>
Whenever location is set to 'home', the state is set to 'home' if prior presence state was 'absent'. If attribute rp_locationHome was defined, all of those locations will trigger state change to 'home' as well.<br>
<br>
Whenever location is set to 'underway', the state is set to 'absent' if prior presence state was 'present'. If attribute rp_locationUnderway was defined, all of those locations will trigger state change to 'absent' as well. Those locations won't appear in reading 'lastLocation'.<br>
<br>
Whenever location is set to 'wayhome', the reading 'wayhome' is set to '1' if current presence state is 'absent'. If attribute rp_locationWayhome was defined, LEAVING one of those locations will set reading 'wayhome' to '1' as well. So you actually have implicit and explicit options to trigger wayhome.<br>
Arriving at home will reset the value of 'wayhome' to '0'.<br>
<br>
If you are using the <a href="#GEOFANCY">GEOFANCY</a> module, you can easily have your location updated with GEOFANCY events by defining a simple NOTIFY-trigger like this:<br>
<br>
<code>define n_rp_Pet.location notify geofancy:currLoc_Pet.* set rp_Pet:FILTER=location!=$EVTPART1 location $EVTPART1</code><br>
<br>
By defining geofencing zones called 'home' and 'wayhome' in the iOS app, you automatically get all the features of automatic state changes described above.
</ul>
</ul><br>
<br>
<a name="PETattr" id="PETattr"></a> <b>Attributes</b><br>
<ul>
<ul>
<li>
<b>rp_autoGoneAfter</b> - hours after which state should be auto-set to 'gone' when current state is 'absent'; defaults to 16 hours
</li>
<li>
<b>rp_geofenceUUIDs</b> - comma separated list of device UUIDs updating their location via <a href="#GEOFANCY">GEOFANCY</a>. Avoids necessity for additional notify/DOIF/watchdog devices and can make GEOFANCY attribute <i>devAlias</i> obsolete. (using more than one UUID/device might not be a good idea as location my leap)
</li>
<li>
<b>rp_lang</b> - overwrite global language setting; helps to set device attributes to translate FHEMWEB display text
</li>
<li>
<b>rp_locationHome</b> - locations matching these will be treated as being at home; first entry reflects default value to be used with state correlation; separate entries by space; defaults to 'home'
</li>
<li>
<b>rp_locationUnderway</b> - locations matching these will be treated as being underway; first entry reflects default value to be used with state correlation; separate entries by comma or space; defaults to "underway"
</li>
<li>
<b>rp_locationWayhome</b> - leaving a location matching these will set reading wayhome to 1; separate entries by space; defaults to "wayhome"
</li>
<li>
<b>rp_locations</b> - list of locations to be shown in FHEMWEB; separate entries by comma only and do NOT use spaces
</li>
<li>
<b>rp_moodDefault</b> - the mood that should be set after arriving at home or changing state from awoken to home
</li>
<li>
<b>rp_moodSleepy</b> - the mood that should be set if state was changed to gotosleep or awoken
</li>
<li>
<b>rp_moods</b> - list of moods to be shown in FHEMWEB; separate entries by comma only and do NOT use spaces
</li>
<li>
<b>rp_noDuration</b> - may be used to disable continuous, non-event driven duration timer calculation (see readings durTimer*)
</li>
<li>
<b>rp_passStateTo</b> - synchronize home state with other PET, GUEST or ROOMMATE devices; separte devices by space
</li>
<li>
<b>rp_passPresenceTo</b> - synchronize presence state with other PET, GUEST or ROOMMATE devices; separte devices by space
</li>
<li>
<b>rp_presenceDevices</b> - take over presence state from any other FHEM device. Separate more than one device with comma meaning ALL of them need to be either present or absent to trigger update of this PET device. You may optionally add a reading name separated by :, otherwise reading name presence and state will be considered.
</li>
<li>
<b>rp_realname</b> - whenever PET wants to use the realname it uses the value of attribute alias or group; defaults to group
</li>
<li>
<b>rp_showAllStates</b> - states 'asleep' and 'awoken' are hidden by default to allow simple gotosleep process via devStateIcon; defaults to 0
</li>
<li>
<b>rp_states</b> - list of states to be shown in FHEMWEB; separate entries by comma only and do NOT use spaces; unsupported states will lead to errors though
</li>
<li>
<b>rp_wakeupDevice</b> - reference to enslaved DUMMY devices used as a wake-up timer (part of RESIDENTS Toolkit's wakeuptimer)
</li>
</ul>
</ul><br>
<br>
<br>
<b>Generated Readings/Events:</b><br>
<ul>
<ul>
<li>
<b>durTimerAbsence</b> - timer to show the duration of absence from home in human readable format (hours:minutes:seconds)
</li>
<li>
<b>durTimerAbsence_cr</b> - timer to show the duration of absence from home in computer readable format (minutes)
</li>
<li>
<b>durTimerPresence</b> - timer to show the duration of presence at home in human readable format (hours:minutes:seconds)
</li>
<li>
<b>durTimerPresence_cr</b> - timer to show the duration of presence at home in computer readable format (minutes)
</li>
<li>
<b>durTimerSleep</b> - timer to show the duration of sleep in human readable format (hours:minutes:seconds)
</li>
<li>
<b>durTimerSleep_cr</b> - timer to show the duration of sleep in computer readable format (minutes)
</li>
<li>
<b>lastArrival</b> - timestamp of last arrival at home
</li>
<li>
<b>lastAwake</b> - timestamp of last sleep cycle end
</li>
<li>
<b>lastDeparture</b> - timestamp of last departure from home
</li>
<li>
<b>lastDurAbsence</b> - duration of last absence from home in human readable format (hours:minutes:seconds)
</li>
<li>
<b>lastDurAbsence_cr</b> - duration of last absence from home in computer readable format (minutes)
</li>
<li>
<b>lastDurPresence</b> - duration of last presence at home in human readable format (hours:minutes:seconds)
</li>
<li>
<b>lastDurPresence_cr</b> - duration of last presence at home in computer readable format (minutes)
</li>
<li>
<b>lastDurSleep</b> - duration of last sleep in human readable format (hours:minutes:seconds)
</li>
<li>
<b>lastDurSleep_cr</b> - duration of last sleep in computer readable format (minutes)
</li>
<li>
<b>lastLocation</b> - the prior location
</li>
<li>
<b>lastMood</b> - the prior mood
</li>
<li>
<b>lastSleep</b> - timestamp of last sleep cycle begin
</li>
<li>
<b>lastState</b> - the prior state
</li>
<li>
<b>lastWakeup</b> - time of last wake-up timer run
</li>
<li>
<b>lastWakeupDev</b> - device name of last wake-up timer
</li>
<li>
<b>location</b> - the current location
</li>
<li>
<b>mood</b> - the current mood
</li>
<li>
<b>nextWakeup</b> - time of next wake-up program run
</li>
<li>
<b>nextWakeupDev</b> - device name for next wake-up program run
</li>
<li>
<b>presence</b> - reflects the home presence state, depending on value of reading 'state' (can be 'present' or 'absent')
</li>
<li>
<b>state</b> - reflects the current state
</li>
<li>
<b>wakeup</b> - becomes '1' while a wake-up program of this resident is being executed
</li>
<li>
<b>wayhome</b> - depending on current location, it can become '1' if individual is on his/her way back home
</li>
</ul>
</ul>
</ul>
=end html
=begin html_DE
<a name="PET" id="PET"></a>
<h3>PET</h3>
<ul>
<a name="PETdefine" id="PETdefine"></a> <b>Define</b>
<ul>
<code>define &lt;rp_FirstName&gt; PET [&lt;Device Name(n) der Bewohnergruppe(n)&gt;]</code><br>
<br>
Stellt ein spezielles virtuelles Device bereit, welches ein Haustier zu Hause repr&auml;sentiert.<br>
Basierend auf dem aktuellen Status und anderen Readings k&ouml;nnen andere Aktionen innerhalb von FHEM angestoßen werden.<br>
<br>
Wird vom &uuml;bergeordneten Modul <a href="#RESIDENTS">RESIDENTS</a> verwendet, kann aber auch einzeln benutzt werden.<br>
<br />
Bei Mitgliedschaft mehrerer Bewohnergruppen werden diese durch Komma getrennt angegeben (siehe Beispiel unten).<br />
<br>
Beispiele:<br>
<ul>
<code># Einzeln<br>
define rp_Pet PET<br>
<br>
# Typisches Gruppenmitglied<br>
define rp_Pet PET rgr_Residents # um Mitglied der Gruppe rgr_Residents zu sein<br>
<br>
# Mitglied in mehreren Gruppen<br>
define rp_Pet PET rgr_Residents,rgr_Pets # um Mitglied der Gruppen rgr_Residents und rgr_Pets zu sein</code>
</ul>
</ul><br>
<br>
<a name="PETset" id="PETset"></a> <b>Set</b>
<ul>
<code>set &lt;rp_FirstName&gt; &lt;command&gt; [&lt;parameter&gt;]</code><br>
<br>
Momentan sind die folgenden Kommandos definiert.<br>
<ul>
<li>
<b>location</b> &nbsp;&nbsp;-&nbsp;&nbsp; setzt das Reading 'location'; siehe auch Attribut rp_locations, um die in FHEMWEB angezeigte Liste anzupassen
</li>
<li>
<b>mood</b> &nbsp;&nbsp;-&nbsp;&nbsp; setzt das Reading 'mood'; siehe auch Attribut rp_moods, um die in FHEMWEB angezeigte Liste anzupassen
</li>
<li>
<b>state</b> &nbsp;&nbsp;home,gotosleep,asleep,awoken,absent,gone&nbsp;&nbsp; wechselt den Status; siehe auch Attribut rp_states, um die in FHEMWEB angezeigte Liste anzupassen
</li>
<li>
<b>create</b>
<li><i>locationMap</i>&nbsp;&nbsp; f&uuml;gt ein vorkonfiguriertes weblink Device hinzu, welches eine Google Map anzeigt, sofern die Readings locationLat+locationLong vorhanden sind.</li>
<li><i>wakeuptimer</i>&nbsp;&nbsp; f&uuml;gt diverse Vorkonfigurationen auf Basis von RESIDENTS Toolkit hinzu. Siehe separate Sektion in der <a href="#RESIDENTS">RESIDENTS Modul Kommandoreferenz</a>.</li>
</li>
</ul>
<ul>
<u>Hinweis:</u> Sofern der Zugriff auf administrative set-Kommandos (-> create) eingeschr&auml;nkt werden soll, kann in einer FHEMWEB Instanz das Attribut allowedCommands &auml;hnlich wie 'set,set-user' erweitert werden.
Die Zeichenfolge 'set-user' stellt dabei sicher, dass beim Zugriff auf FHEM &uuml;ber diese FHEMWEB Instanz nur nicht-administrative set-Kommandos ausgef&uuml;hrt werden k&ouml;nnen.
</ul>
</ul><br>
<br>
<ul>
<u>M&ouml;gliche Status und ihre Bedeutung</u><br>
<br>
<ul>
Dieses Modul unterscheidet 6 verschiedene Status:<br>
<br>
<ul>
<li>
<b>home</b> - Mitbewohner ist zu Hause und wach
</li>
<li>
<b>gotosleep</b> - Mitbewohner ist auf dem Weg ins Bett
</li>
<li>
<b>asleep</b> - Mitbewohner schl&auml;ft
</li>
<li>
<b>awoken</b> - Mitbewohner ist gerade aufgewacht
</li>
<li>
<b>absent</b> - Mitbewohner ist momentan nicht zu Hause, wird aber bald zur&uuml;ck sein
</li>
<li>
<b>gone</b> - Mitbewohner ist f&uuml;r l&auml;ngere Zeit verreist
</li>
</ul>
</ul>
</ul><br>
<br>
<ul>
<u>Zusammenhang zwischen Anwesenheit/Presence und Aufenthaltsort/Location</u><br>
<br>
<ul>
Unter bestimmten Umst&auml;nden f&uuml;hrt der Wechsel des Status auch zu einer Änderung des Readings 'location'.<br>
<br>
Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'absent' auf 'present' wechselt, wird 'location' auf 'home' gesetzt. Sofern das Attribut rp_locationHome gesetzt ist, wird die erste Lokation daraus anstelle von 'home' verwendet.<br>
<br>
Wannimmer die Anwesenheit (bzw. das Reading 'presence') von 'present' auf 'absent' wechselt, wird 'location' auf 'underway' gesetzt. Sofern das Attribut rp_locationUnderway gesetzt ist, wird die erste Lokation daraus anstelle von 'underway' verwendet.
</ul>
</ul><br>
<br>
<ul>
<u>Auto-Status 'gone'</u><br>
<br>
<ul>
Immer wenn ein Mitbewohner auf 'absent' gesetzt wird, wird ein Z&auml;hler gestartet, der nach einer bestimmten Zeit den Status automatisch auf 'gone' setzt.<br>
Der Standard ist nach 16 Stunden.<br>
<br>
Dieses Verhalten kann &uuml;ber das Attribut rp_autoGoneAfter angepasst werden.
</ul>
</ul><br>
<br>
<ul>
<u>Anwesenheit mit anderen PET, GUEST, oder ROOMMATE Devices synchronisieren</u><br />
<br />
<ul>
Wenn Sie immer zusammen mit anderen Mitbewohnern oder G&auml;sten das Haus verlassen oder erreichen, k&ouml;nnen Sie ihren Status ganz einfach auf andere Mitbewohner &uuml;bertragen.<br />
Durch das Setzen des Attributs rr_PassPresenceTo folgen die dort aufgef&uuml;hrten Mitbewohner ihren eigenen Status&auml;nderungen nach 'home', 'absent' oder 'gone'.<br />
<br />
Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'gone' oder 'none' (im Falle von G&auml;sten) nicht beachtet werden.
</ul>
</ul><br />
<br />
<ul>
<u>Status zu Hause mit anderen PET, GUEST oder ROOMMATE Devices synchronisieren</u><br />
<br />
<ul>
Um jeden Statuswechsel zu synchronisieren, welcher _nicht_ dem erreichen oder verlassen des Hauses entspricht, kann das Attribut rr_passStateTo gesetzt werden.<br />
<br />
Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'gone' oder 'none' (im Falle von G&auml;sten) nicht beachtet werden.
</ul>
</ul><br />
<br />
<ul>
<u>Zusammenhang zwischen Aufenthaltsort/Location und Anwesenheit/Presence</u><br>
<br>
<ul>
Unter bestimmten Umst&auml;nden hat der Wechsel des Readings 'location' auch einen Einfluss auf den tats&auml;chlichen Status.<br>
<br>
Immer wenn eine Lokation mit dem Namen 'home' gesetzt wird, wird auch der Status auf 'home' gesetzt, sofern die Anwesenheit bis dahin noch auf 'absent' stand. Sofern das Attribut rp_locationHome gesetzt wurde, so l&ouml;sen alle dort angegebenen Lokationen einen Statuswechsel nach 'home' aus.<br>
<br>
Immer wenn eine Lokation mit dem Namen 'underway' gesetzt wird, wird auch der Status auf 'absent' gesetzt, sofern die Anwesenheit bis dahin noch auf 'present' stand. Sofern das Attribut rp_locationUnderway gesetzt wurde, so l&ouml;sen alle dort angegebenen Lokationen einen Statuswechsel nach 'underway' aus. Diese Lokationen werden auch nicht in das Reading 'lastLocation' &uuml;bertragen.<br>
<br>
Immer wenn eine Lokation mit dem Namen 'wayhome' gesetzt wird, wird das Reading 'wayhome' auf '1' gesetzt, sofern die Anwesenheit zu diesem Zeitpunkt 'absent' ist. Sofern das Attribut rp_locationWayhome gesetzt wurde, so f&uuml;hrt das VERLASSEN einer dort aufgef&uuml;hrten Lokation ebenfalls dazu, dass das Reading 'wayhome' auf '1' gesetzt wird. Es gibt also 2 M&ouml;glichkeiten den Nach-Hause-Weg-Indikator zu beeinflussen (implizit und explizit).<br>
Die Ankunft zu Hause setzt den Wert von 'wayhome' zur&uuml;ck auf '0'.<br>
<br>
Wenn Sie auch das <a href="#GEOFANCY">GEOFANCY</a> Modul verwenden, k&ouml;nnen Sie das Reading 'location' ganz einfach &uuml;ber GEOFANCY Ereignisse aktualisieren lassen. Definieren Sie dazu einen NOTIFY-Trigger wie diesen:<br>
<br>
<code>define n_rp_Manfred.location notify geofancy:currLoc_Manfred.* set rp_Manfred:FILTER=location!=$EVTPART1 location $EVTPART1</code><br>
<br>
Durch das Anlegen von Geofencing-Zonen mit den Namen 'home' und 'wayhome' in der iOS App werden zuk&uuml;nftig automatisch alle Status&auml;nderungen wie oben beschrieben durchgef&uuml;hrt.
</ul>
</ul><br>
<br>
<a name="PETattr" id="PETattr"></a> <b>Attribute</b><br>
<ul>
<ul>
<li>
<b>rp_autoGoneAfter</b> - Anzahl der Stunden, nach denen sich der Status automatisch auf 'gone' &auml;ndert, wenn der aktuellen Status 'absent' ist; Standard ist 36 Stunden
</li>
<li>
<b>rp_geofenceUUIDs</b> - Mit Komma getrennte Liste von Ger&auml;te UUIDs, die ihren Standort &uuml;ber <a href="#GEOFANCY">GEOFANCY</a> aktualisieren. Vermeidet zus&auml;tzliche notify/DOIF/watchdog Ger&auml;te und kann als Ersatz f&uuml;r das GEOFANCY attribute <i>devAlias</i> dienen. (hier ehr als eine UUID/Device zu hinterlegen ist eher keine gute Idee da die Lokation dann wom&ouml;glich anf&auml;ngt zu springen)
</li>
<li>
<b>rp_lang</b> - &uuml;berschreibt globale Spracheinstellung; hilft beim setzen von Device Attributen, um FHEMWEB Anzeigetext zu &uuml;bersetzen
</li>
<li>
<b>rp_locationHome</b> - hiermit &uuml;bereinstimmende Lokationen werden als zu Hause gewertet; der erste Eintrag wird f&uuml;r das Zusammenspiel bei Status&auml;nderungen benutzt; mehrere Eintr&auml;ge durch Leerzeichen trennen; Standard ist 'home'
</li>
<li>
<b>rp_locationUnderway</b> - hiermit &uuml;bereinstimmende Lokationen werden als unterwegs gewertet; der erste Eintrag wird f&uuml;r das Zusammenspiel bei Status&auml;nderungen benutzt; mehrere Eintr&auml;ge durch Leerzeichen trennen; Standard ist 'underway'
</li>
<li>
<b>rp_locationWayhome</b> - das Verlassen einer Lokation, die hier aufgef&uuml;hrt ist, l&auml;sst das Reading 'wayhome' auf '1' setzen; mehrere Eintr&auml;ge durch Leerzeichen trennen; Standard ist "wayhome"
</li>
<li>
<b>rp_locations</b> - Liste der in FHEMWEB anzuzeigenden Lokationsauswahlliste in FHEMWEB; mehrere Eintr&auml;ge nur durch Komma trennen und KEINE Leerzeichen verwenden
</li>
<li>
<b>rp_moodDefault</b> - die Stimmung, die nach Ankunft zu Hause oder nach dem Statuswechsel von 'awoken' auf 'home' gesetzt werden soll
</li>
<li>
<b>rp_moodSleepy</b> - die Stimmung, die nach Statuswechsel zu 'gotosleep' oder 'awoken' gesetzt werden soll
</li>
<li>
<b>rp_moods</b> - Liste von Stimmungen, wie sie in FHEMWEB angezeigt werden sollen; mehrere Eintr&auml;ge nur durch Komma trennen und KEINE Leerzeichen verwenden
</li>
<li>
<b>rp_noDuration</b> - deaktiviert die kontinuierliche, nicht Event-basierte Berechnung der Zeitspannen (siehe Readings durTimer*)
</li>
<li>
<b>rp_passStateTo</b> - synchronisiere den Status zu Hause mit anderen PET, GUEST oder ROOMMATE Devices; mehrere Devices durch Leerzeichen trennen
</li>
<li>
<b>rp_passPresenceTo</b> - synchronisiere die Anwesenheit mit anderen PET, GUEST oder ROOMMATE Devices; mehrere Devices durch Leerzeichen trennen
</li>
<li>
<b>rp_presenceDevices</b> - &uuml;bernehmen des presence Status von einem anderen FHEM Device. Bei mehreren Devices diese mit Komma trennen, um ein Update des PET Devices auszul&ouml;sen, sobald ALLE Devices entweder absent oder present sind. Optional kann auch durch : abgetrennt ein Reading Name angegeben werden, ansonsten werden die Readings presence und state ber&uuml;cksichtigt.
</li>
<li>
<b>rp_realname</b> - wo immer PET den richtigen Namen verwenden m&ouml;chte nutzt es den Wert des Attributs alias oder group; Standard ist group
</li>
<li>
<b>rp_showAllStates</b> - die Status 'asleep' und 'awoken' sind normalerweise nicht immer sichtbar, um einen einfachen Zubettgeh-Prozess &uuml;ber das devStateIcon Attribut zu erm&ouml;glichen; Standard ist 0
</li>
<li>
<b>rp_states</b> - Liste aller in FHEMWEB angezeigter Status; Eintrage nur mit Komma trennen und KEINE Leerzeichen benutzen; nicht unterst&uuml;tzte Status f&uuml;hren zu Fehlern
</li>
<li>
<b>rp_wakeupDevice</b> - Referenz zu versklavten DUMMY Ger&auml;ten, welche als Wecker benutzt werden (Teil von RESIDENTS Toolkit's wakeuptimer)
</li>
</ul>
</ul><br>
<br>
<br>
<b>Generierte Readings/Events:</b><br>
<ul>
<ul>
<li>
<b>durTimerAbsence</b> - Timer, der die Dauer der Abwesenheit in normal lesbarem Format anzeigt (Stunden:Minuten:Sekunden)
</li>
<li>
<b>durTimerAbsence_cr</b> - Timer, der die Dauer der Abwesenheit in Computer lesbarem Format anzeigt (Minuten)
</li>
<li>
<b>durTimerPresence</b> - Timer, der die Dauer der Anwesenheit in normal lesbarem Format anzeigt (Stunden:Minuten:Sekunden)
</li>
<li>
<b>durTimerPresence_cr</b> - Timer, der die Dauer der Anwesenheit in Computer lesbarem Format anzeigt (Minuten)
</li>
<li>
<b>durTimerSleep</b> - Timer, der die Schlafdauer in normal lesbarem Format anzeigt (Stunden:Minuten:Sekunden)
</li>
<li>
<b>durTimerSleep_cr</b> - Timer, der die Schlafdauer in Computer lesbarem Format anzeigt (Minuten)
</li>
<li>
<b>lastArrival</b> - Zeitstempel der letzten Ankunft zu Hause
</li>
<li>
<b>lastAwake</b> - Zeitstempel des Endes des letzten Schlafzyklus
</li>
<li>
<b>lastDeparture</b> - Zeitstempel des letzten Verlassens des Zuhauses
</li>
<li>
<b>lastDurAbsence</b> - Dauer der letzten Abwesenheit in normal lesbarem Format (Stunden:Minuten:Sekunden)
</li>
<li>
<b>lastDurAbsence_cr</b> - Dauer der letzten Abwesenheit in Computer lesbarem Format (Minuten)
</li>
<li>
<b>lastDurPresence</b> - Dauer der letzten Anwesenheit in normal lesbarem Format (Stunden:Minuten:Sekunden)
</li>
<li>
<b>lastDurPresence_cr</b> - Dauer der letzten Anwesenheit in Computer lesbarem Format (Minuten)
</li>
<li>
<b>lastDurSleep</b> - Dauer des letzten Schlafzyklus in normal lesbarem Format (Stunden:Minuten:Sekunden)
</li>
<li>
<b>lastDurSleep_cr</b> - Dauer des letzten Schlafzyklus in Computer lesbarem Format (Minuten)
</li>
<li>
<b>lastLocation</b> - der vorherige Aufenthaltsort
</li>
<li>
<b>lastMood</b> - die vorherige Stimmung
</li>
<li>
<b>lastSleep</b> - Zeitstempel des Beginns des letzten Schlafzyklus
</li>
<li>
<b>lastState</b> - der vorherige Status
</li>
<li>
<b>lastWakeup</b> - Zeit der letzten Wake-up Timer Ausf&uuml;hring
</li>
<li>
<b>lastWakeupDev</b> - Device Name des zuletzt verwendeten Wake-up Timers
</li>
<li>
<b>location</b> - der aktuelle Aufenthaltsort
</li>
<li>
<b>mood</b> - die aktuelle Stimmung
</li>
<li>
<b>nextWakeup</b> - Zeit der n&auml;chsten Wake-up Timer Ausf&uuml;hrung
</li>
<li>
<b>nextWakeupDev</b> - Device Name des als n&auml;chstes ausgef&auml;hrten Wake-up Timer
</li>
<li>
<b>presence</b> - gibt den zu Hause Status in Abh&auml;ngigkeit des Readings 'state' wieder (kann 'present' oder 'absent' sein)
</li>
<li>
<b>state</b> - gibt den aktuellen Status wieder
</li>
<li>
<b>wakeup</b> - hat den Wert '1' w&auml;hrend ein Weckprogramm dieses Bewohners ausgef&uuml;hrt wird
</li>
<li>
<b>wayhome</b> - abh&auml;ngig vom aktullen Aufenthaltsort, kann der Wert '1' werden, wenn die Person auf dem weg zur&uuml;ck nach Hause ist
</li>
</ul>
</ul>
</ul>
=end html_DE
=for :application/json;q=META.json 20_PET.pm
{
"author": [
"Julian Pawlowski <julian.pawlowski@gmail.com>"
],
"x_fhem_maintainer": [
"loredo"
],
"x_fhem_maintainer_github": [
"jpawlowski"
],
"keywords": [
"Attendence",
"Family",
"People",
"Presence",
"RESIDENTS"
]
}
=end :application/json;q=META.json
=cut

View File

@ -156,16 +156,26 @@ sub ROOMMATE_Initialize($) {
</ul><br>
<br>
<ul>
<u>Synchronizing presence with other ROOMMATE or GUEST devices</u><br>
<u>Synchronizing presence with other ROOMMATE, GUEST or PET devices</u><br>
<br>
<ul>
If you always leave or arrive at your house together with other roommates or guests, you may enable a synchronization of your presence state for certain individuals.<br>
If you always leave or arrive at your house together with other roommates, guests or pets, you may enable a synchronization of your presence state for certain individuals.<br>
By setting attribute rr_passPresenceTo, those individuals will follow your presence state changes to 'home', 'absent' or 'gone' as you do them with your own device.<br>
<br>
Please note that individuals with current state 'gone' or 'none' (in case of guests) will not be touched.
</ul>
</ul><br>
<br>
<ul>
<u>Synchronizing state with other ROOMMATE, GUEST or PET devices</u><br>
<br>
<ul>
To sync each and every status change that is _not_ related to leaving or arriving at your house, you may set attribute rr_passStateTo.<br>
<br>
Please note that individuals with current state 'gone' or 'none' (in case of guests) will not be touched.
</ul>
</ul><br>
<br>
<ul>
<u>Location correlation to state</u><br>
<br>
@ -224,7 +234,10 @@ sub ROOMMATE_Initialize($) {
<b>rr_noDuration</b> - may be used to disable continuous, non-event driven duration timer calculation (see readings durTimer*)
</li>
<li>
<b>rr_passPresenceTo</b> - synchronize presence state with other ROOMMATE or GUEST devices; separte devices by space
<b>rr_passStateTo</b> - synchronize home state with other ROOMMATE, GUEST or PET devices; separte devices by space
</li>
<li>
<b>rr_passPresenceTo</b> - synchronize presence state with other ROOMMATE, GUEST or PET devices; separte devices by space
</li>
<li>
<b>rr_presenceDevices</b> - take over presence state from any other FHEM device. Separate more than one device with comma meaning ALL of them need to be either present or absent to trigger update of this ROOMMATE device. You may optionally add a reading name separated by :, otherwise reading name presence and state will be considered.
@ -456,7 +469,7 @@ sub ROOMMATE_Initialize($) {
</ul><br />
<br />
<ul>
<u>Anwesenheit mit anderen ROOMMATE oder GUEST Devices synchronisieren</u><br />
<u>Anwesenheit mit anderen ROOMMATE, GUEST oder PET Devices synchronisieren</u><br />
<br />
<ul>
Wenn Sie immer zusammen mit anderen Mitbewohnern oder G&auml;sten das Haus verlassen oder erreichen, k&ouml;nnen Sie ihren Status ganz einfach auf andere Mitbewohner &uuml;bertragen.<br />
@ -466,6 +479,16 @@ sub ROOMMATE_Initialize($) {
</ul>
</ul><br />
<br />
<ul>
<u>Status zu Hause mit anderen ROOMMATE, GUEST oder PET Devices synchronisieren</u><br />
<br />
<ul>
Um jeden Statuswechsel zu synchronisieren, welcher _nicht_ dem erreichen oder verlassen des Hauses entspricht, kann das Attribut rr_passStateTo gesetzt werden.<br />
<br />
Bitte beachten, dass Mitbewohner mit dem aktuellen Status 'gone' oder 'none' (im Falle von G&auml;sten) nicht beachtet werden.
</ul>
</ul><br />
<br />
<ul>
<u>Zusammenhang zwischen Aufenthaltsort/Location und Anwesenheit/Presence</u><br />
<br />
@ -524,7 +547,10 @@ sub ROOMMATE_Initialize($) {
<b>rr_noDuration</b> - deaktiviert die kontinuierliche, nicht Event-basierte Berechnung der Zeitspannen (siehe Readings durTimer*)
</li>
<li>
<b>rr_passPresenceTo</b> - synchronisiere die Anwesenheit mit anderen ROOMMATE oder GUEST Devices; mehrere Devices durch Leerzeichen trennen
<b>rr_passStateTo</b> - synchronisiere den Status zu Hause mit anderen ROOMMATE, GUEST oder PET Devices; mehrere Devices durch Leerzeichen trennen
</li>
<li>
<b>rr_passPresenceTo</b> - synchronisiere die Anwesenheit mit anderen ROOMMATE, GUEST oder PET Devices; mehrere Devices durch Leerzeichen trennen
</li>
<li>
<b>rr_presenceDevices</b> - &uuml;bernehmen des presence Status von einem anderen FHEM Device. Bei mehreren Devices diese mit Komma trennen, um ein Update des ROOMMATE Devices auszul&ouml;sen, sobald ALLE Devices entweder absent oder present sind. Optional kann auch durch : abgetrennt ein Reading Name angegeben werden, ansonsten werden die Readings presence und state ber&uuml;cksichtigt.

View File

@ -23,6 +23,7 @@ our (@RESIDENTStk_attr);
"moods",
"moodSleepy",
"noDuration:0,1",
"passStatusTo",
"passPresenceTo",
"presenceDevices",
"realname:group,alias",
@ -98,14 +99,18 @@ sub RESIDENTStk_Define($$) {
my $fname = $name;
$fname =~ s/^$prefix//;
$attr{$name}{group} = $fname if ( $prefix eq "rr_" );
$attr{$name}{group} = "Guests" if ( $prefix eq "rg_" );
$attr{$name}{alias} = "Status" if ( $prefix eq "rr_" );
$attr{$name}{alias} = $fname if ( $prefix eq "rg_" );
$attr{$name}{icon} = "people_sensor" if ( $prefix eq "rr_" );
$attr{$name}{icon} = "scene_visit_guests" if ( $prefix eq "rg_" );
$attr{$name}{group} = $fname if ( $prefix eq "rr_" );
$attr{$name}{group} = "Guests" if ( $prefix eq "rg_" );
$attr{$name}{group} = "Pets" if ( $prefix eq "rp_" );
$attr{$name}{alias} = "Status" if ( $prefix eq "rr_" );
$attr{$name}{alias} = $fname
if ( $prefix eq "rg_" || $prefix eq "rp_" );
$attr{$name}{icon} = "people_sensor" if ( $prefix eq "rr_" );
$attr{$name}{icon} = "scene_visit_guests" if ( $prefix eq "rg_" );
$attr{$name}{icon} = "dog_silhouette" if ( $prefix eq "rp_" );
$attr{$name}{rr_realname} = "group" if ( $prefix eq "rr_" );
$attr{$name}{rg_realname} = "alias" if ( $prefix eq "rg_" );
$attr{$name}{rp_realname} = "alias" if ( $prefix eq "rp_" );
$attr{$name}{sortby} = "1";
if ( $hash->{RESIDENTGROUPS} ) {
@ -168,6 +173,19 @@ sub RESIDENTStk_Undefine($$) {
}
}
# delete child pets
if ( defined( $hash->{PETS} )
&& $hash->{PETS} ne "" )
{
my @registeredPets =
split( /,/, $hash->{PETS} );
foreach my $child (@registeredPets) {
fhem( "delete " . $child );
Log3 $name, 3, "RESIDENTS $name: deleted device $child";
}
}
return undef;
}
@ -184,6 +202,7 @@ sub RESIDENTStk_Set($@) {
my $location = ReadingsVal( $name, "location", "undefined" );
my $roommates = ( $hash->{ROOMMATES} ? $hash->{ROOMMATES} : undef );
my $guests = ( $hash->{GUESTS} ? $hash->{GUESTS} : undef );
my $pets = ( $hash->{PETS} ? $hash->{PETS} : undef );
my $silent = 0;
return undef if ( IsDisabled($name) );
@ -206,8 +225,10 @@ sub RESIDENTStk_Set($@) {
$TYPE eq "RESIDENTS"
&& ( lc( $a[1] ) eq "addroommate"
|| lc( $a[1] ) eq "addguest"
|| lc( $a[1] ) eq "addpet"
|| lc( $a[1] ) eq "removeroommate"
|| lc( $a[1] ) eq "removeguest"
|| lc( $a[1] ) eq "removepet"
|| lc( $a[1] ) eq "create" )
);
}
@ -269,9 +290,10 @@ sub RESIDENTStk_Set($@) {
}
else {
if ($adminMode) {
$usage .= " addRoommate addGuest";
$usage .= " addRoommate addGuest addPet";
$usage .= " removeRoommate:" . $roommates if ($roommates);
$usage .= " removeGuest:" . $guests if ($guests);
$usage .= " removePet:" . $pets if ($pets);
$usage .= " create:wakeuptimer";
}
}
@ -318,8 +340,10 @@ sub RESIDENTStk_Set($@) {
$newstate = $a[1];
}
$newstate = "none" if ( $newstate eq "gone" && $TYPE eq "GUEST" );
$newstate = "gone" if ( $newstate eq "none" && $TYPE ne "GUEST" );
$newstate = "none"
if ( $newstate eq "gone" && $TYPE eq "GUEST" );
$newstate = "gone"
if ( $newstate eq "none" && $TYPE ne "GUEST" );
Log3 $name, 2, "$TYPE set $name " . $newstate if ( !$silent );
@ -339,6 +363,18 @@ sub RESIDENTStk_Set($@) {
}
}
# loop through every pet
if ($pets) {
my @registeredPets =
split( /,/, $pets );
foreach my $pet (@registeredPets) {
fhem "set $pet silentSet state $newstate"
if ( ReadingsVal( $pet, "state", "initialized" ) ne
$newstate );
}
}
# loop through every guest
if ($guests) {
$newstate = "none" if ( $newstate eq "gone" );
@ -347,14 +383,16 @@ sub RESIDENTStk_Set($@) {
split( /,/, $guests );
foreach my $guest (@registeredGuests) {
fhem "set $guest silentSet state $newstate"
fhem "set $guest"
. ( $roommates || $pets ? ":FILTER=state!=none" : "" )
. " silentSet state $newstate"
if ( ReadingsVal( $guest, "state", "initialized" ) ne
$newstate );
}
}
}
# ROOMMATE+GUEST: if state changed
# ROOMMATE+GUEST+PET: if state changed
elsif ( $state ne $newstate ) {
readingsBeginUpdate($hash);
@ -569,8 +607,28 @@ sub RESIDENTStk_Set($@) {
split( ' ', $attr{$name}{ $prefix . 'passPresenceTo' } );
foreach my $object (@linkedObjects) {
if ( IsDevice( $object, "ROOMMATE|GUEST" )
&& $defs{$object} ne $name
if ( IsDevice( $object, "ROOMMATE|GUEST|PET" )
&& $defs{$object}{NAME} ne $name
&& ReadingsVal( $object, "state", "" ) ne "gone"
&& ReadingsVal( $object, "state", "" ) ne "none" )
{
fhem("set $object $newstate");
}
}
}
}
else {
# adjust linked objects
if ( defined( $attr{$name}{ $prefix . 'passStatusTo' } )
&& $attr{$name}{ $prefix . 'passStatusTo' } ne "" )
{
my @linkedObjects =
split( ' ', $attr{$name}{ $prefix . 'passStatusTo' } );
foreach my $object (@linkedObjects) {
if ( IsDevice( $object, "ROOMMATE|GUEST|PET" )
&& $defs{$object}{NAME} ne $name
&& ReadingsVal( $object, "state", "" ) ne "gone"
&& ReadingsVal( $object, "state", "" ) ne "none" )
{
@ -581,7 +639,7 @@ sub RESIDENTStk_Set($@) {
}
# clear readings if guest is gone
if ( $newstate eq "none" ) {
if ( $newstate eq "none" && $TYPE eq "GUEST" ) {
readingsBulkUpdate( $hash, "lastArrival", "-" )
if ( ReadingsVal( $name, "lastArrival", "-" ) ne "-" );
readingsBulkUpdate( $hash, "lastAwake", "-" )
@ -738,6 +796,66 @@ sub RESIDENTStk_Set($@) {
}
}
# RESIDENTS only: addPet
elsif ( $TYPE eq "RESIDENTS" && lc( $a[1] ) eq "addpet" ) {
Log3 $name, 2, "$TYPE set $name " . $a[1] . " " . $a[2]
if ( defined( $a[2] ) );
my $rp_name;
my $rp_name_attr;
if ( $a[2] ne "" ) {
$rp_name = "rp_" unless ( $a[2] =~ /^rp_/ );
$rp_name .= $a[2];
# define pet
fhem( "define " . $rp_name . " PET " . $name )
unless ( IsDevice($rp_name) );
if ( IsDevice($rp_name) ) {
return "Can't create, device $rp_name already existing."
unless ( IsDevice( $rp_name, "PET" ) );
my $lang =
$a[3]
? uc( $a[3] )
: AttrVal( $rp_name, "rp_lang",
AttrVal( $name, "rgr_lang", undef ) );
fhem( "attr " . $rp_name . " rp_lang " . $lang )
if ($lang);
$attr{$rp_name}{comment} = "Auto-created by $name"
unless ( defined( $attr{$rp_name}{comment} )
&& $attr{$rp_name}{comment} eq "Auto-created by $name" );
fhem "sleep 1;set $rp_name silentSet state home";
Log3 $name, 3, "$TYPE $name: created new device $rp_name";
}
}
else {
return "No Argument given, choose one of name ";
}
}
# RESIDENTS only: removePet
elsif ( $TYPE eq "RESIDENTS" && lc( $a[1] ) eq "removepet" ) {
Log3 $name, 2, "$TYPE set $name " . $a[1] . " " . $a[2]
if ( defined( $a[2] ) );
if ( $a[2] ne "" ) {
my $rp_name = $a[2];
# delete pet
if ( IsDevice($rp_name) ) {
Log3 $name, 3, "$TYPE $name: deleted device $rp_name"
if fhem( "delete " . $rp_name );
}
}
else {
return "No Argument given, choose one of name ";
}
}
# mood
elsif ( $TYPE ne "RESIDENTS" && $a[1] eq "mood" ) {
if ( defined( $a[2] ) && $a[2] ne "" ) {
@ -1147,7 +1265,7 @@ m/^((?:DELETE)?ATTR)\s+([A-Za-z\d._]+)\s+([A-Za-z\d_\.\-\/]+)(?:\s+(.*)\s*)?$/
|| $attr eq $prefix . "presenceDevices"
|| $attr eq $prefix . "wakeupResetSwitcher" );
# when attributes of RESIDENTS, ROOMMATE or GUEST were changed
# when attributes of RESIDENTS, ROOMMATE, GUEST or PET were changed
if ( $d eq $name ) {
if ( defined( &{'DoInitDev'} ) ) {
DoInitDev($name)
@ -1217,9 +1335,9 @@ m/^((?:DELETE)?ATTR)\s+([A-Za-z\d._]+)\s+([A-Za-z\d_\.\-\/]+)(?:\s+(.*)\s*)?$/
return "" if ( IsDisabled($name) or IsDisabled($devName) );
# process events from ROOMMATE or GUEST devices
# process events from ROOMMATE, GUEST or PET devices
# only when they hit RESIDENTS devices
if ( $TYPE eq "RESIDENTS" && $devType =~ /^ROOMMATE|GUEST$/ ) {
if ( $TYPE eq "RESIDENTS" && $devType =~ /^ROOMMATE|GUEST|PET$/ ) {
my $events = deviceEvents( $dev, 1 );
return "" unless ($events);
@ -1858,10 +1976,10 @@ m/^((?:next[rR]un)?\s*(off|OFF|([\+\-])?(([0-9]{2}):([0-9]{2})|([1-9]+[0-9]*)))?
"RESIDENTStk $NAME: "
. "WARNING - user device $wakeupUserdevice does not exist!";
}
elsif ( !IsDevice( $wakeupUserdevice, "RESIDENTS|ROOMMATE|GUEST" ) ) {
elsif ( !IsDevice( $wakeupUserdevice, "RESIDENTS|ROOMMATE|GUEST|PET" ) ) {
Log3 $NAME, 3,
"RESIDENTStk $NAME: "
. "WARNING - defined user device '$wakeupUserdevice' is not a RESIDENTS, ROOMMATE or GUEST device!";
. "WARNING - defined user device '$wakeupUserdevice' is not a RESIDENTS, ROOMMATE, GUEST or PET device!";
}
# check for required wakeupMacro attribute
@ -1988,7 +2106,7 @@ if (\$EVTPART0 eq \"stop\") {\
########
# (re)create other notify and watchdog templates
# for ROOMMATE or GUEST devices
# for ROOMMATE, GUEST or PET devices
# macro: gotosleep
if ( !IsDevice( $wakeupUserdevice, "RESIDENTS" )
@ -2857,9 +2975,9 @@ sub RESIDENTStk_wakeupRun($;$) {
elsif ( !IsDevice($wakeupUserdevice) ) {
return "$NAME: Non existing wakeupUserdevice $wakeupUserdevice";
}
elsif ( !IsDevice( $wakeupUserdevice, "RESIDENTS|ROOMMATE|GUEST" ) ) {
elsif ( !IsDevice( $wakeupUserdevice, "RESIDENTS|ROOMMATE|GUEST|PET" ) ) {
return "$NAME: "
. "wakeupUserdevice $wakeupUserdevice is not of type RESIDENTS, ROOMMATE or GUEST";
. "wakeupUserdevice $wakeupUserdevice is not of type RESIDENTS, ROOMMATE, GUEST or PET";
}
elsif ( IsDevice( $wakeupUserdevice, "GUEST" )
&& $wakeupUserdeviceState eq "none" )
@ -3568,6 +3686,17 @@ sub RESIDENTStk_findResidentSlaves($;$) {
push @GUESTS, $_;
}
my @PETS;
foreach ( devspec2array("TYPE=PET") ) {
next
unless (
defined( $defs{$_}{RESIDENTGROUPS} )
&& grep { $hash->{NAME} eq $_ }
split( /,/, $defs{$_}{RESIDENTGROUPS} )
);
push @PETS, $_;
}
if ( scalar @ROOMMATES ) {
$hash->{ROOMMATES} = join( ",", @ROOMMATES );
}
@ -3582,6 +3711,13 @@ sub RESIDENTStk_findResidentSlaves($;$) {
delete $hash->{GUESTS};
}
if ( scalar @PETS ) {
$hash->{PETS} = join( ",", @PETS );
}
elsif ( $hash->{PETS} ) {
delete $hash->{PETS};
}
if ( $hash->{ROOMMATES} ) {
$ret .= "," if ($ret);
$ret .= $hash->{ROOMMATES};
@ -3590,6 +3726,10 @@ sub RESIDENTStk_findResidentSlaves($;$) {
$ret .= "," if ($ret);
$ret .= $hash->{GUESTS};
}
if ( $hash->{PETS} ) {
$ret .= "," if ($ret);
$ret .= $hash->{PETS};
}
return RESIDENTStk_findDummySlaves( $hash, $ret );
}

View File

@ -126,6 +126,7 @@ FHEM/20_FRM_STEPPER.pm ntruchsess Sonstige Systeme
FHEM/20_GUEST.pm loredo Automatisierung
FHEM/20_N4HBUS.pm okoerber Sonstige Systeme
FHEM/20_OWFS.pm mfr69bs 1Wire (deprecated)
FHEM/20_PET.pm loredo Automatisierung
FHEM/20_ROOMMATE.pm loredo Automatisierung
FHEM/20_X10.pm neubert SlowRF
FHEM/21_HEOSGroup CoolTux Multimedia

View File

@ -1,4 +1,4 @@
#Thu Mar 14 20:36:49 2019
#Sat May 4 13:30:33 2019
setstate Alarm on
setstate Alarm 2015-01-04 16:22:21 state on
setstate AllLights undefined
@ -1499,267 +1499,579 @@ setstate lcCinema 2015-01-04 16:22:40 state AllOff
setstate outdoorNotifier active
setstate outdoorNotifier 2019-03-14 20:36:02 state active
setstate rg_Guest1 none
setstate rg_Guest1 2019-03-14 20:36:17 durTimerAbsence 44454:26:57
setstate rg_Guest1 2019-03-14 20:36:17 durTimerAbsence_cr 2667267
setstate rg_Guest1 2015-01-04 16:19:19 durTimerPresence 00:00:00
setstate rg_Guest1 2015-01-04 16:19:19 durTimerPresence_cr 0
setstate rg_Guest1 2019-05-04 13:30:29 durTimerAbsence 00:00:01
setstate rg_Guest1 2019-05-04 13:29:30 durTimerAbsence_cr 0
setstate rg_Guest1 2019-05-04 13:13:53 durTimerPresence 00:00:00
setstate rg_Guest1 2019-05-04 13:13:53 durTimerPresence_cr 0
setstate rg_Guest1 2015-01-04 16:19:19 durTimerSleep 00:00:00
setstate rg_Guest1 2015-01-04 16:19:19 durTimerSleep_cr 0
setstate rg_Guest1 2014-02-16 14:09:20 lastArrival -
setstate rg_Guest1 2014-02-16 14:09:29 lastAwake 0
setstate rg_Guest1 2014-02-16 14:09:20 lastDeparture 2014-02-16 14:09:20
setstate rg_Guest1 2014-02-16 14:09:20 lastDurAbsence -
setstate rg_Guest1 2014-02-16 14:09:20 lastDurPresence 00:00:03
setstate rg_Guest1 2014-02-16 14:09:29 lastDurSleep 0
setstate rg_Guest1 2014-02-16 14:09:20 lastLocation -
setstate rg_Guest1 2014-02-16 14:09:20 lastMood -
setstate rg_Guest1 2014-02-16 14:09:29 lastSleep 0
setstate rg_Guest1 2014-02-16 14:09:20 lastState home
setstate rg_Guest1 2014-02-16 14:09:20 location -
setstate rg_Guest1 2014-02-16 14:09:20 mood -
setstate rg_Guest1 2014-02-16 14:09:20 presence absent
setstate rg_Guest1 2014-02-16 14:09:20 state none
setstate rg_Guest1 2019-05-04 13:30:29 lastArrival -
setstate rg_Guest1 2019-05-04 13:14:03 lastAwake -
setstate rg_Guest1 2019-05-04 13:30:28 lastDeparture 2019-05-04 13:30:28
setstate rg_Guest1 2019-05-04 13:30:29 lastDurAbsence -
setstate rg_Guest1 2019-05-04 13:29:30 lastDurAbsence_cr 15
setstate rg_Guest1 2019-05-04 13:30:28 lastDurPresence 00:00:58
setstate rg_Guest1 2019-05-04 13:30:28 lastDurPresence_cr 1
setstate rg_Guest1 2019-05-04 13:14:03 lastDurSleep -
setstate rg_Guest1 2019-05-04 13:30:29 lastLocation -
setstate rg_Guest1 2019-05-04 13:30:29 lastMood -
setstate rg_Guest1 2019-05-04 13:14:03 lastSleep -
setstate rg_Guest1 2019-05-04 13:30:29 lastState absent
setstate rg_Guest1 2019-05-04 13:30:29 location -
setstate rg_Guest1 2019-05-04 13:30:28 mood -
setstate rg_Guest1 2019-05-04 13:30:28 presence absent
setstate rg_Guest1 2019-05-04 13:30:29 state none
setstate rg_Guest1 2014-02-15 16:16:27 wayhome 0
setstate rg_Guest2 none
setstate rg_Guest2 2019-03-14 20:36:17 durTimerAbsence 44454:35:32
setstate rg_Guest2 2019-03-14 20:36:17 durTimerAbsence_cr 2667276
setstate rg_Guest2 2015-01-04 16:19:19 durTimerPresence 00:00:00
setstate rg_Guest2 2015-01-04 16:19:19 durTimerPresence_cr 0
setstate rg_Guest2 2019-05-04 13:29:59 durTimerAbsence 00:15:55
setstate rg_Guest2 2019-05-04 13:29:59 durTimerAbsence_cr 16
setstate rg_Guest2 2019-05-04 13:13:53 durTimerPresence 00:00:00
setstate rg_Guest2 2019-05-04 13:13:53 durTimerPresence_cr 0
setstate rg_Guest2 2015-01-04 16:19:19 durTimerSleep 00:00:00
setstate rg_Guest2 2015-01-04 16:19:19 durTimerSleep_cr 0
setstate rg_Guest2 2014-02-16 14:01:22 lastArrival -
setstate rg_Guest2 2014-02-16 14:09:29 lastAwake 0
setstate rg_Guest2 2014-02-16 14:00:46 lastDeparture 2014-02-16 14:00:45
setstate rg_Guest2 2014-02-16 14:01:22 lastDurAbsence -
setstate rg_Guest2 2014-02-16 14:00:46 lastDurPresence 00:00:03
setstate rg_Guest2 2014-02-16 14:09:29 lastDurSleep 0
setstate rg_Guest2 2014-02-16 14:01:22 lastLocation -
setstate rg_Guest2 2014-02-16 14:01:22 lastMood -
setstate rg_Guest2 2014-02-16 14:09:29 lastSleep 0
setstate rg_Guest2 2014-02-16 14:01:22 lastState absent
setstate rg_Guest2 2014-02-16 14:01:22 location -
setstate rg_Guest2 2014-02-16 14:01:22 mood -
setstate rg_Guest2 2014-02-16 14:00:46 presence absent
setstate rg_Guest2 2014-02-16 14:01:22 state none
setstate rg_Guest2 2019-05-04 13:14:04 lastArrival -
setstate rg_Guest2 2019-05-04 13:14:04 lastAwake -
setstate rg_Guest2 2019-05-04 13:14:04 lastDeparture 2019-05-04 13:14:04
setstate rg_Guest2 2019-05-04 13:14:04 lastDurAbsence -
setstate rg_Guest2 2019-05-04 13:13:58 lastDurAbsence_cr 0
setstate rg_Guest2 2019-05-04 13:14:04 lastDurPresence 00:00:06
setstate rg_Guest2 2019-05-04 13:14:04 lastDurPresence_cr 0
setstate rg_Guest2 2019-05-04 13:14:04 lastDurSleep -
setstate rg_Guest2 2019-05-04 13:14:04 lastLocation -
setstate rg_Guest2 2019-05-04 13:14:04 lastMood -
setstate rg_Guest2 2019-05-04 13:14:04 lastSleep -
setstate rg_Guest2 2019-05-04 13:14:04 lastState home
setstate rg_Guest2 2019-05-04 13:14:04 location -
setstate rg_Guest2 2019-05-04 13:14:04 mood -
setstate rg_Guest2 2019-05-04 13:14:04 presence absent
setstate rg_Guest2 2019-05-04 13:14:04 state none
setstate rg_Guest2 2014-02-15 16:16:29 wayhome 0
setstate rgr_Children home
setstate rgr_Children 2018-07-15 15:19:54 durTimerAbsence 00:00:00
setstate rgr_Children 2018-07-15 15:19:54 durTimerAbsence_cr 0
setstate rgr_Children 2019-03-14 20:36:17 durTimerPresence 44454:05:12
setstate rgr_Children 2019-03-14 20:36:17 durTimerPresence_cr 2667245
setstate rgr_Children 2019-05-04 13:30:30 durTimerPresence 00:00:00
setstate rgr_Children 2019-05-04 13:30:30 durTimerPresence_cr 0
setstate rgr_Children 2018-07-15 15:19:54 durTimerSleep 00:00:00
setstate rgr_Children 2018-07-15 15:19:54 durTimerSleep_cr 0
setstate rgr_Children 2015-01-04 16:19:19 lastActivity gone
setstate rgr_Children 2015-01-04 16:19:19 lastActivityBy Son
setstate rgr_Children 2014-02-16 14:31:05 lastArrival 2014-02-16 14:31:05
setstate rgr_Children 2019-05-04 13:30:30 lastActivity home
setstate rgr_Children 2019-05-04 13:30:30 lastActivityBy Son
setstate rgr_Children 2019-05-04 13:30:30 lastActivityByDev rr_Son
setstate rgr_Children 2019-05-04 13:30:30 lastArrival 2019-05-04 13:30:30
setstate rgr_Children 2014-02-17 20:45:12 lastAwake 2014-02-17 20:45:12
setstate rgr_Children 2014-02-16 14:26:55 lastDeparture 2014-02-16 14:26:55
setstate rgr_Children 2014-02-16 14:31:05 lastDurAbsence 00:04:10
setstate rgr_Children 2014-02-16 14:26:55 lastDurPresence 00:10:37
setstate rgr_Children 2019-05-04 13:30:30 lastDeparture 2019-05-04 13:30:30
setstate rgr_Children 2019-05-04 13:30:30 lastDurAbsence 00:00:00
setstate rgr_Children 2019-05-04 13:30:30 lastDurAbsence_cr 0
setstate rgr_Children 2019-05-04 13:30:30 lastDurPresence 00:16:32
setstate rgr_Children 2019-05-04 13:30:30 lastDurPresence_cr 17
setstate rgr_Children 2014-02-17 20:45:12 lastDurSleep 29:47:11
setstate rgr_Children 2014-02-16 14:58:01 lastSleep 2014-02-16 14:58:01
setstate rgr_Children 2014-02-17 20:45:12 lastState asleep
setstate rgr_Children 2014-02-16 14:31:05 presence present
setstate rgr_Children 2015-01-04 16:19:19 residentsAbsent 0
setstate rgr_Children 2014-02-17 20:45:12 residentsAsleep 0
setstate rgr_Children 2014-02-16 14:06:48 residentsAwoken 0
setstate rgr_Children 2015-01-04 16:19:19 residentsGone 2
setstate rgr_Children 2014-02-16 14:31:13 residentsGotosleep 0
setstate rgr_Children 2014-02-15 16:16:25 residentsGuests 0
setstate rgr_Children 2014-02-17 20:45:12 residentsHome 1
setstate rgr_Children 2019-05-04 13:30:30 lastState absent
setstate rgr_Children 2019-05-04 13:30:30 presence present
setstate rgr_Children 2019-05-04 13:30:30 residentsAbsent 0
setstate rgr_Children 2019-05-04 13:30:30 residentsAbsentDevs -
setstate rgr_Children 2019-05-04 13:30:30 residentsAbsentNames -
setstate rgr_Children 2019-05-04 13:09:50 residentsAsleep 0
setstate rgr_Children 2019-05-04 13:09:50 residentsAsleepDevs -
setstate rgr_Children 2019-05-04 13:09:50 residentsAsleepNames -
setstate rgr_Children 2019-05-04 13:09:51 residentsAwoken 0
setstate rgr_Children 2019-05-04 13:09:51 residentsAwokenDevs -
setstate rgr_Children 2019-05-04 13:09:51 residentsAwokenNames -
setstate rgr_Children 2019-05-04 13:05:39 residentsGone 0
setstate rgr_Children 2019-05-04 13:05:39 residentsGoneDevs -
setstate rgr_Children 2019-05-04 13:05:39 residentsGoneNames -
setstate rgr_Children 2019-05-04 13:09:47 residentsGotosleep 0
setstate rgr_Children 2019-05-04 13:09:47 residentsGotosleepDevs -
setstate rgr_Children 2019-05-04 13:09:47 residentsGotosleepNames -
setstate rgr_Children 2019-05-04 13:30:30 residentsHome 3
setstate rgr_Children 2019-05-04 13:30:30 residentsHomeDevs rr_Baby,rr_Daughter,rr_Son
setstate rgr_Children 2019-05-04 13:30:30 residentsHomeNames Baby, Daughter, Son
setstate rgr_Children 2014-02-16 14:31:05 residentsTotal 3
setstate rgr_Children 2014-02-16 14:58:01 residentsTotalAbsent 2
setstate rgr_Children 2014-02-16 14:58:01 residentsTotalPresent 1
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalAbsent 0
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalAbsentDevs -
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalAbsentNames -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalGuests 0
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalGuestsAbsent 0
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalGuestsAbsentDevs -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalGuestsAbsentNames -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalGuestsPresent 0
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalGuestsPresentDevs -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalGuestsPresentNames -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalPets 0
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalPetsAbsent 0
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalPetsAbsentDevs -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalPetsAbsentNames -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalPetsPresent 0
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalPetsPresentDevs -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalPetsPresentNames -
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalPresent 3
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalPresentDevs rr_Baby,rr_Daughter,rr_Son
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalPresentNames Baby, Daughter, Son
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalRoommates 3
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalRoommatesAbsent 0
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalRoommatesAbsentDevs -
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalRoommatesAbsentNames -
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalRoommatesPresent 3
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalRoommatesPresentDevs rr_Baby,rr_Daughter,rr_Son
setstate rgr_Children 2019-05-04 13:30:30 residentsTotalRoommatesPresentNames Baby, Daughter, Son
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalWakeup 0
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalWakeupDevs -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalWakeupNames -
setstate rgr_Children 2014-02-15 16:16:25 residentsTotalWayhome 0
setstate rgr_Children 2014-02-17 20:45:12 state home
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalWayhomeDelayed 0
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalWayhomeDelayedDevs -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalWayhomeDelayedNames -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalWayhomeDevs -
setstate rgr_Children 2019-05-04 13:05:39 residentsTotalWayhomeNames -
setstate rgr_Children 2019-05-04 13:30:30 state home
setstate rgr_Guests none
setstate rgr_Guests 2019-03-14 20:36:17 durTimerAbsence 44454:26:57
setstate rgr_Guests 2019-03-14 20:36:17 durTimerAbsence_cr 2667267
setstate rgr_Guests 2018-07-15 15:19:54 durTimerPresence 00:00:00
setstate rgr_Guests 2018-07-15 15:19:54 durTimerPresence_cr 0
setstate rgr_Guests 2019-05-04 13:30:29 durTimerAbsence 00:00:01
setstate rgr_Guests 2019-05-04 13:29:30 durTimerAbsence_cr 0
setstate rgr_Guests 2019-05-04 13:14:04 durTimerPresence 00:00:00
setstate rgr_Guests 2019-05-04 13:13:53 durTimerPresence_cr 0
setstate rgr_Guests 2018-07-15 15:19:54 durTimerSleep 00:00:00
setstate rgr_Guests 2018-07-15 15:19:54 durTimerSleep_cr 0
setstate rgr_Guests 2014-02-16 14:09:20 lastActivity none
setstate rgr_Guests 2014-02-16 14:09:20 lastActivityBy Guests
setstate rgr_Guests 2014-02-16 14:09:17 lastArrival 2014-02-16 14:09:17
setstate rgr_Guests 2014-02-16 14:09:20 lastDeparture 2014-02-16 14:09:20
setstate rgr_Guests 2014-02-16 14:09:17 lastDurAbsence 00:00:04
setstate rgr_Guests 2014-02-16 14:09:20 lastDurPresence 00:00:03
setstate rgr_Guests 2014-02-16 14:09:20 lastState home
setstate rgr_Guests 2014-02-16 14:09:20 presence absent
setstate rgr_Guests 2014-02-16 14:09:17 residentsAbsent 0
setstate rgr_Guests 2019-05-04 13:30:29 lastActivity none
setstate rgr_Guests 2019-05-04 13:30:29 lastActivityBy Guest1
setstate rgr_Guests 2019-05-04 13:30:29 lastActivityByDev rg_Guest1
setstate rgr_Guests 2019-05-04 13:29:30 lastArrival 2019-05-04 13:29:30
setstate rgr_Guests 2019-05-04 13:30:28 lastDeparture 2019-05-04 13:30:28
setstate rgr_Guests 2019-05-04 13:29:30 lastDurAbsence 00:15:26
setstate rgr_Guests 2019-05-04 13:29:30 lastDurAbsence_cr 15
setstate rgr_Guests 2019-05-04 13:30:28 lastDurPresence 00:00:58
setstate rgr_Guests 2019-05-04 13:30:28 lastDurPresence_cr 1
setstate rgr_Guests 2019-05-04 13:30:29 lastState absent
setstate rgr_Guests 2019-05-04 13:30:28 presence absent
setstate rgr_Guests 2019-05-04 13:30:29 residentsAbsent 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsAbsentDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsAbsentNames -
setstate rgr_Guests 2014-02-15 16:16:27 residentsAsleep 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsAsleepDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsAsleepNames -
setstate rgr_Guests 2014-02-15 16:16:27 residentsAwoken 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsAwokenDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsAwokenNames -
setstate rgr_Guests 2014-02-15 16:16:27 residentsGone 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsGoneDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsGoneNames -
setstate rgr_Guests 2014-02-15 16:16:27 residentsGotosleep 0
setstate rgr_Guests 2014-02-16 14:09:20 residentsGuests 0
setstate rgr_Guests 2014-02-16 14:09:20 residentsHome 0
setstate rgr_Guests 2014-02-16 14:09:20 residentsTotal 0
setstate rgr_Guests 2014-02-16 14:09:17 residentsTotalAbsent 0
setstate rgr_Guests 2014-02-16 14:09:20 residentsTotalPresent 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsGotosleepDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsGotosleepNames -
setstate rgr_Guests 2019-05-04 13:30:28 residentsHome 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsHomeDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsHomeNames -
setstate rgr_Guests 2019-05-04 13:30:29 residentsTotal 0
setstate rgr_Guests 2019-05-04 13:30:29 residentsTotalAbsent 0
setstate rgr_Guests 2019-05-04 13:30:29 residentsTotalAbsentDevs -
setstate rgr_Guests 2019-05-04 13:30:29 residentsTotalAbsentNames -
setstate rgr_Guests 2019-05-04 13:30:29 residentsTotalGuests 0
setstate rgr_Guests 2019-05-04 13:30:29 residentsTotalGuestsAbsent 0
setstate rgr_Guests 2019-05-04 13:30:29 residentsTotalGuestsAbsentDevs -
setstate rgr_Guests 2019-05-04 13:30:29 residentsTotalGuestsAbsentNames -
setstate rgr_Guests 2019-05-04 13:30:28 residentsTotalGuestsPresent 0
setstate rgr_Guests 2019-05-04 13:30:28 residentsTotalGuestsPresentDevs -
setstate rgr_Guests 2019-05-04 13:30:28 residentsTotalGuestsPresentNames -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalPets 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalPetsAbsent 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalPetsAbsentDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalPetsAbsentNames -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalPetsPresent 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalPetsPresentDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalPetsPresentNames -
setstate rgr_Guests 2019-05-04 13:30:28 residentsTotalPresent 0
setstate rgr_Guests 2019-05-04 13:30:28 residentsTotalPresentDevs -
setstate rgr_Guests 2019-05-04 13:30:28 residentsTotalPresentNames -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalRoommates 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalRoommatesAbsent 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalRoommatesAbsentDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalRoommatesAbsentNames -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalRoommatesPresent 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalRoommatesPresentDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalRoommatesPresentNames -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalWakeup 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalWakeupDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalWakeupNames -
setstate rgr_Guests 2014-02-15 16:16:27 residentsTotalWayhome 0
setstate rgr_Guests 2014-02-16 14:09:20 state none
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalWayhomeDelayed 0
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalWayhomeDelayedDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalWayhomeDelayedNames -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalWayhomeDevs -
setstate rgr_Guests 2019-05-04 13:05:39 residentsTotalWayhomeNames -
setstate rgr_Guests 2019-05-04 13:30:29 state none
setstate rgr_Parents home
setstate rgr_Parents 2018-07-15 15:19:54 durTimerAbsence 00:00:00
setstate rgr_Parents 2018-07-15 15:19:54 durTimerAbsence_cr 0
setstate rgr_Parents 2019-03-14 20:36:17 durTimerPresence 44454:20:00
setstate rgr_Parents 2019-03-14 20:36:17 durTimerPresence_cr 2667260
setstate rgr_Parents 2019-05-04 13:30:30 durTimerPresence 00:00:00
setstate rgr_Parents 2019-05-04 13:30:30 durTimerPresence_cr 0
setstate rgr_Parents 2018-07-15 15:19:54 durTimerSleep 00:00:00
setstate rgr_Parents 2018-07-15 15:19:54 durTimerSleep_cr 0
setstate rgr_Parents 2015-01-04 16:19:19 lastActivity gone
setstate rgr_Parents 2015-01-04 16:19:19 lastActivityBy Father
setstate rgr_Parents 2014-02-16 14:16:17 lastArrival 2014-02-16 14:16:17
setstate rgr_Parents 2019-05-04 13:30:30 lastActivity home
setstate rgr_Parents 2019-05-04 13:30:30 lastActivityBy Mother
setstate rgr_Parents 2019-05-04 13:30:30 lastActivityByDev rr_Mother
setstate rgr_Parents 2019-05-04 13:30:30 lastArrival 2019-05-04 13:30:30
setstate rgr_Parents 2014-02-15 16:39:35 lastAwake 2014-02-15 16:39:35
setstate rgr_Parents 2014-02-16 14:16:16 lastDeparture 2014-02-16 14:16:16
setstate rgr_Parents 2014-02-16 14:16:17 lastDurAbsence 00:00:01
setstate rgr_Parents 2014-02-16 14:16:16 lastDurPresence 00:00:03
setstate rgr_Parents 2019-05-04 13:30:30 lastDeparture 2019-05-04 13:30:30
setstate rgr_Parents 2019-05-04 13:30:30 lastDurAbsence 00:00:00
setstate rgr_Parents 2019-05-04 13:30:30 lastDurAbsence_cr 0
setstate rgr_Parents 2019-05-04 13:30:30 lastDurPresence 00:16:32
setstate rgr_Parents 2019-05-04 13:30:30 lastDurPresence_cr 17
setstate rgr_Parents 2014-02-15 16:39:35 lastDurSleep 00:02:44
setstate rgr_Parents 2014-02-15 16:36:51 lastSleep 2014-02-15 16:36:51
setstate rgr_Parents 2014-02-16 14:16:17 lastState absent
setstate rgr_Parents 2014-02-16 14:16:17 presence present
setstate rgr_Parents 2015-01-04 16:19:19 residentsAbsent 0
setstate rgr_Parents 2014-02-16 13:31:53 residentsAsleep 0
setstate rgr_Parents 2014-02-16 13:31:53 residentsAwoken 0
setstate rgr_Parents 2015-01-04 16:19:19 residentsGone 1
setstate rgr_Parents 2014-02-15 16:36:51 residentsGotosleep 0
setstate rgr_Parents 2014-02-15 16:13:39 residentsGuests 0
setstate rgr_Parents 2014-02-16 14:26:52 residentsHome 1
setstate rgr_Parents 2019-05-04 13:30:30 lastState absent
setstate rgr_Parents 2019-05-04 13:30:30 presence present
setstate rgr_Parents 2019-05-04 13:30:30 residentsAbsent 0
setstate rgr_Parents 2019-05-04 13:30:30 residentsAbsentDevs -
setstate rgr_Parents 2019-05-04 13:30:30 residentsAbsentNames -
setstate rgr_Parents 2019-05-04 13:10:35 residentsAsleep 0
setstate rgr_Parents 2019-05-04 13:10:35 residentsAsleepDevs -
setstate rgr_Parents 2019-05-04 13:10:35 residentsAsleepNames -
setstate rgr_Parents 2019-05-04 13:10:35 residentsAwoken 0
setstate rgr_Parents 2019-05-04 13:10:35 residentsAwokenDevs -
setstate rgr_Parents 2019-05-04 13:10:35 residentsAwokenNames -
setstate rgr_Parents 2019-05-04 13:05:39 residentsGone 0
setstate rgr_Parents 2019-05-04 13:05:39 residentsGoneDevs -
setstate rgr_Parents 2019-05-04 13:05:39 residentsGoneNames -
setstate rgr_Parents 2019-05-04 13:10:34 residentsGotosleep 0
setstate rgr_Parents 2019-05-04 13:10:34 residentsGotosleepDevs -
setstate rgr_Parents 2019-05-04 13:10:34 residentsGotosleepNames -
setstate rgr_Parents 2019-05-04 13:30:30 residentsHome 2
setstate rgr_Parents 2019-05-04 13:30:30 residentsHomeDevs rr_Father,rr_Mother
setstate rgr_Parents 2019-05-04 13:30:30 residentsHomeNames Father, Mother
setstate rgr_Parents 2014-02-16 13:48:12 residentsTotal 2
setstate rgr_Parents 2014-02-16 14:26:52 residentsTotalAbsent 1
setstate rgr_Parents 2014-02-16 14:26:52 residentsTotalPresent 1
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalAbsent 0
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalAbsentDevs -
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalAbsentNames -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalGuests 0
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalGuestsAbsent 0
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalGuestsAbsentDevs -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalGuestsAbsentNames -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalGuestsPresent 0
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalGuestsPresentDevs -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalGuestsPresentNames -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalPets 0
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalPetsAbsent 0
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalPetsAbsentDevs -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalPetsAbsentNames -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalPetsPresent 0
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalPetsPresentDevs -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalPetsPresentNames -
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalPresent 2
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalPresentDevs rr_Father,rr_Mother
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalPresentNames Father, Mother
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalRoommates 2
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalRoommatesAbsent 0
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalRoommatesAbsentDevs -
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalRoommatesAbsentNames -
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalRoommatesPresent 2
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalRoommatesPresentDevs rr_Father,rr_Mother
setstate rgr_Parents 2019-05-04 13:30:30 residentsTotalRoommatesPresentNames Father, Mother
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalWakeup 0
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalWakeupDevs -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalWakeupNames -
setstate rgr_Parents 2014-02-15 16:13:39 residentsTotalWayhome 0
setstate rgr_Parents 2014-02-16 14:16:17 state home
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalWayhomeDelayed 0
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalWayhomeDelayedDevs -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalWayhomeDelayedNames -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalWayhomeDevs -
setstate rgr_Parents 2019-05-04 13:05:39 residentsTotalWayhomeNames -
setstate rgr_Parents 2019-05-04 13:30:30 state home
setstate rgr_Pets home
setstate rgr_Pets 2019-05-04 13:05:10 durTimerAbsence 00:00:00
setstate rgr_Pets 2019-05-04 13:05:10 durTimerAbsence_cr 0
setstate rgr_Pets 2019-05-04 13:30:30 durTimerPresence 00:00:00
setstate rgr_Pets 2019-05-04 13:30:30 durTimerPresence_cr 0
setstate rgr_Pets 2019-05-04 13:05:10 durTimerSleep 00:00:00
setstate rgr_Pets 2019-05-04 13:05:10 durTimerSleep_cr 0
setstate rgr_Pets 2019-05-04 13:30:30 lastActivity home
setstate rgr_Pets 2019-05-04 13:30:30 lastActivityBy Dog
setstate rgr_Pets 2019-05-04 13:30:30 lastActivityByDev rp_Dog
setstate rgr_Pets 2019-05-04 13:30:30 lastArrival 2019-05-04 13:30:30
setstate rgr_Pets 2019-05-04 13:10:35 lastAwake 2019-05-04 13:10:35
setstate rgr_Pets 2019-05-04 13:30:30 lastDeparture 2019-05-04 13:30:30
setstate rgr_Pets 2019-05-04 13:30:30 lastDurAbsence 00:00:00
setstate rgr_Pets 2019-05-04 13:30:30 lastDurAbsence_cr 0
setstate rgr_Pets 2019-05-04 13:30:30 lastDurPresence 00:01:21
setstate rgr_Pets 2019-05-04 13:30:30 lastDurPresence_cr 1
setstate rgr_Pets 2019-05-04 13:10:35 lastDurSleep 00:00:01
setstate rgr_Pets 2019-05-04 13:10:35 lastDurSleep_cr 0
setstate rgr_Pets 2019-05-04 13:10:34 lastSleep 2019-05-04 13:10:34
setstate rgr_Pets 2019-05-04 13:30:30 lastState absent
setstate rgr_Pets 2019-05-04 13:30:30 presence present
setstate rgr_Pets 2019-05-04 13:30:30 residentsAbsent 0
setstate rgr_Pets 2019-05-04 13:30:30 residentsAbsentDevs -
setstate rgr_Pets 2019-05-04 13:30:30 residentsAbsentNames -
setstate rgr_Pets 2019-05-04 13:10:35 residentsAsleep 0
setstate rgr_Pets 2019-05-04 13:10:35 residentsAsleepDevs -
setstate rgr_Pets 2019-05-04 13:10:35 residentsAsleepNames -
setstate rgr_Pets 2019-05-04 13:10:35 residentsAwoken 0
setstate rgr_Pets 2019-05-04 13:10:35 residentsAwokenDevs -
setstate rgr_Pets 2019-05-04 13:10:35 residentsAwokenNames -
setstate rgr_Pets 2019-05-04 13:05:34 residentsGone 0
setstate rgr_Pets 2019-05-04 13:05:34 residentsGoneDevs -
setstate rgr_Pets 2019-05-04 13:05:34 residentsGoneNames -
setstate rgr_Pets 2019-05-04 13:10:34 residentsGotosleep 0
setstate rgr_Pets 2019-05-04 13:10:34 residentsGotosleepDevs -
setstate rgr_Pets 2019-05-04 13:10:34 residentsGotosleepNames -
setstate rgr_Pets 2019-05-04 13:30:30 residentsHome 1
setstate rgr_Pets 2019-05-04 13:30:30 residentsHomeDevs rp_Dog
setstate rgr_Pets 2019-05-04 13:30:30 residentsHomeNames Dog
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotal 1
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalAbsent 0
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalAbsentDevs -
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalAbsentNames -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalGuests 0
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalGuestsAbsent 0
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalGuestsAbsentDevs -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalGuestsAbsentNames -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalGuestsPresent 0
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalGuestsPresentDevs -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalGuestsPresentNames -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalPets 1
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalPetsAbsent 0
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalPetsAbsentDevs -
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalPetsAbsentNames -
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalPetsPresent 1
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalPetsPresentDevs rp_Dog
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalPetsPresentNames Dog
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalPresent 1
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalPresentDevs rp_Dog
setstate rgr_Pets 2019-05-04 13:30:30 residentsTotalPresentNames Dog
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalRoommates 0
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalRoommatesAbsent 0
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalRoommatesAbsentDevs -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalRoommatesAbsentNames -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalRoommatesPresent 0
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalRoommatesPresentDevs -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalRoommatesPresentNames -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalWakeup 0
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalWakeupDevs -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalWakeupNames -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalWayhome 0
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalWayhomeDelayed 0
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalWayhomeDelayedDevs -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalWayhomeDelayedNames -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalWayhomeDevs -
setstate rgr_Pets 2019-05-04 13:05:34 residentsTotalWayhomeNames -
setstate rgr_Pets 2019-05-04 13:30:30 state home
setstate rgr_Residents home
setstate rgr_Residents 2018-07-15 15:19:54 durTimerAbsence 00:00:00
setstate rgr_Residents 2018-07-15 15:19:54 durTimerAbsence_cr 0
setstate rgr_Residents 2019-03-14 20:36:17 durTimerPresence 44454:20:00
setstate rgr_Residents 2019-03-14 20:36:17 durTimerPresence_cr 2667260
setstate rgr_Residents 2019-05-04 13:30:30 durTimerPresence 00:00:00
setstate rgr_Residents 2019-05-04 13:30:30 durTimerPresence_cr 0
setstate rgr_Residents 2018-07-15 15:19:54 durTimerSleep 00:00:00
setstate rgr_Residents 2018-07-15 15:19:54 durTimerSleep_cr 0
setstate rgr_Residents 2015-01-04 16:19:19 lastActivity gone
setstate rgr_Residents 2015-01-04 16:19:19 lastActivityBy Son
setstate rgr_Residents 2014-02-16 14:16:17 lastArrival 2014-02-16 14:16:17
setstate rgr_Residents 2019-05-04 13:30:30 lastActivity home
setstate rgr_Residents 2019-05-04 13:30:30 lastActivityBy Dog
setstate rgr_Residents 2019-05-04 13:30:30 lastActivityByDev rp_Dog
setstate rgr_Residents 2019-05-04 13:30:30 lastArrival 2019-05-04 13:30:30
setstate rgr_Residents 2014-02-16 14:02:48 lastAwake 2014-02-16 14:02:48
setstate rgr_Residents 2014-02-16 14:16:16 lastDeparture 2014-02-16 14:16:16
setstate rgr_Residents 2014-02-16 14:16:17 lastDurAbsence 00:00:01
setstate rgr_Residents 2014-02-16 14:16:16 lastDurPresence 00:00:02
setstate rgr_Residents 2019-05-04 13:30:30 lastDeparture 2019-05-04 13:30:30
setstate rgr_Residents 2019-05-04 13:30:30 lastDurAbsence 00:00:00
setstate rgr_Residents 2019-05-04 13:30:30 lastDurAbsence_cr 0
setstate rgr_Residents 2019-05-04 13:30:30 lastDurPresence 00:16:32
setstate rgr_Residents 2019-05-04 13:30:30 lastDurPresence_cr 17
setstate rgr_Residents 2014-02-16 14:02:48 lastDurSleep 00:00:00
setstate rgr_Residents 2014-02-16 14:02:48 lastSleep 2014-02-16 14:02:48
setstate rgr_Residents 2014-02-16 14:16:17 lastState absent
setstate rgr_Residents 2014-02-16 14:16:17 presence present
setstate rgr_Residents 2015-01-04 16:19:19 residentsAbsent 0
setstate rgr_Residents 2014-02-17 20:45:12 residentsAsleep 0
setstate rgr_Residents 2014-02-16 14:06:49 residentsAwoken 0
setstate rgr_Residents 2015-01-04 16:19:19 residentsGone 3
setstate rgr_Residents 2014-02-16 14:31:13 residentsGotosleep 0
setstate rgr_Residents 2014-02-16 14:09:20 residentsGuests 0
setstate rgr_Residents 2014-02-17 20:45:12 residentsHome 2
setstate rgr_Residents 2014-02-16 14:31:05 residentsTotal 5
setstate rgr_Residents 2014-02-16 14:58:01 residentsTotalAbsent 3
setstate rgr_Residents 2014-02-16 14:58:01 residentsTotalPresent 2
setstate rgr_Residents 2019-05-04 13:30:30 lastState absent
setstate rgr_Residents 2019-05-04 13:30:30 presence present
setstate rgr_Residents 2019-05-04 13:30:30 residentsAbsent 0
setstate rgr_Residents 2019-05-04 13:30:30 residentsAbsentDevs -
setstate rgr_Residents 2019-05-04 13:30:30 residentsAbsentNames -
setstate rgr_Residents 2019-05-04 13:10:35 residentsAsleep 0
setstate rgr_Residents 2019-05-04 13:10:35 residentsAsleepDevs -
setstate rgr_Residents 2019-05-04 13:10:35 residentsAsleepNames -
setstate rgr_Residents 2019-05-04 13:10:35 residentsAwoken 0
setstate rgr_Residents 2019-05-04 13:10:35 residentsAwokenDevs -
setstate rgr_Residents 2019-05-04 13:10:35 residentsAwokenNames -
setstate rgr_Residents 2019-05-04 13:05:39 residentsGone 0
setstate rgr_Residents 2019-05-04 13:05:39 residentsGoneDevs -
setstate rgr_Residents 2019-05-04 13:05:39 residentsGoneNames -
setstate rgr_Residents 2019-05-04 13:10:34 residentsGotosleep 0
setstate rgr_Residents 2019-05-04 13:10:34 residentsGotosleepDevs -
setstate rgr_Residents 2019-05-04 13:10:34 residentsGotosleepNames -
setstate rgr_Residents 2019-05-04 13:30:30 residentsHome 6
setstate rgr_Residents 2019-05-04 13:30:30 residentsHomeDevs rr_Baby,rr_Daughter,rr_Father,rr_Mother,rr_Son,rp_Dog
setstate rgr_Residents 2019-05-04 13:30:30 residentsHomeNames Baby, Daughter, Father, Mother, Son, Dog
setstate rgr_Residents 2019-05-04 13:30:29 residentsTotal 6
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalAbsent 0
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalAbsentDevs -
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalAbsentNames -
setstate rgr_Residents 2019-05-04 13:30:29 residentsTotalGuests 0
setstate rgr_Residents 2019-05-04 13:30:29 residentsTotalGuestsAbsent 0
setstate rgr_Residents 2019-05-04 13:30:29 residentsTotalGuestsAbsentDevs -
setstate rgr_Residents 2019-05-04 13:30:29 residentsTotalGuestsAbsentNames -
setstate rgr_Residents 2019-05-04 13:30:28 residentsTotalGuestsPresent 0
setstate rgr_Residents 2019-05-04 13:30:28 residentsTotalGuestsPresentDevs -
setstate rgr_Residents 2019-05-04 13:30:28 residentsTotalGuestsPresentNames -
setstate rgr_Residents 2019-05-04 13:05:34 residentsTotalPets 1
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalPetsAbsent 0
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalPetsAbsentDevs -
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalPetsAbsentNames -
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalPetsPresent 1
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalPetsPresentDevs rp_Dog
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalPetsPresentNames Dog
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalPresent 6
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalPresentDevs rr_Baby,rr_Daughter,rr_Father,rr_Mother,rr_Son,rp_Dog
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalPresentNames Baby, Daughter, Father, Mother, Son, Dog
setstate rgr_Residents 2019-05-04 13:05:34 residentsTotalRoommates 5
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalRoommatesAbsent 0
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalRoommatesAbsentDevs -
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalRoommatesAbsentNames -
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalRoommatesPresent 5
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalRoommatesPresentDevs rr_Baby,rr_Daughter,rr_Father,rr_Mother,rr_Son
setstate rgr_Residents 2019-05-04 13:30:30 residentsTotalRoommatesPresentNames Baby, Daughter, Father, Mother, Son
setstate rgr_Residents 2019-05-04 13:05:34 residentsTotalWakeup 0
setstate rgr_Residents 2019-05-04 13:05:34 residentsTotalWakeupDevs -
setstate rgr_Residents 2019-05-04 13:05:34 residentsTotalWakeupNames -
setstate rgr_Residents 2014-02-15 16:13:39 residentsTotalWayhome 0
setstate rgr_Residents 2014-02-16 14:16:17 state home
setstate rgr_Residents 2019-05-04 13:05:34 residentsTotalWayhomeDelayed 0
setstate rgr_Residents 2019-05-04 13:05:34 residentsTotalWayhomeDelayedDevs -
setstate rgr_Residents 2019-05-04 13:05:34 residentsTotalWayhomeDelayedNames -
setstate rgr_Residents 2019-05-04 13:05:34 residentsTotalWayhomeDevs -
setstate rgr_Residents 2019-05-04 13:05:34 residentsTotalWayhomeNames -
setstate rgr_Residents 2019-05-04 13:30:30 state home
setstate rp_Dog home
setstate rp_Dog 2019-05-04 13:05:34 durTimerAbsence 00:00:00
setstate rp_Dog 2019-05-04 13:05:34 durTimerAbsence_cr 0
setstate rp_Dog 2019-05-04 13:30:30 durTimerPresence 00:00:00
setstate rp_Dog 2019-05-04 13:30:30 durTimerPresence_cr 0
setstate rp_Dog 2019-05-04 13:05:34 durTimerSleep 00:00:00
setstate rp_Dog 2019-05-04 13:05:34 durTimerSleep_cr 0
setstate rp_Dog 2019-05-04 13:30:30 lastArrival 2019-05-04 13:30:30
setstate rp_Dog 2019-05-04 13:10:35 lastAwake 2019-05-04 13:10:35
setstate rp_Dog 2019-05-04 13:30:30 lastDeparture 2019-05-04 13:30:30
setstate rp_Dog 2019-05-04 13:30:30 lastDurAbsence 00:00:00
setstate rp_Dog 2019-05-04 13:30:30 lastDurAbsence_cr 0
setstate rp_Dog 2019-05-04 13:30:30 lastDurPresence 00:01:21
setstate rp_Dog 2019-05-04 13:30:30 lastDurPresence_cr 1
setstate rp_Dog 2019-05-04 13:10:35 lastDurSleep 00:00:01
setstate rp_Dog 2019-05-04 13:10:35 lastDurSleep_cr 0
setstate rp_Dog 2019-05-04 13:09:17 lastLocation undefined
setstate rp_Dog 2019-05-04 13:30:30 lastMood calm
setstate rp_Dog 2019-05-04 13:10:34 lastSleep 2019-05-04 13:10:34
setstate rp_Dog 2019-05-04 13:30:30 lastState absent
setstate rp_Dog 2019-05-04 13:09:18 location home
setstate rp_Dog 2019-05-04 13:30:30 mood calm
setstate rp_Dog 2019-05-04 13:30:30 presence present
setstate rp_Dog 2019-05-04 13:30:30 state home
setstate rp_Dog 2019-05-04 13:05:34 wayhome 0
setstate rr_Baby home
setstate rr_Baby 2015-01-04 16:19:19 durTimerAbsence 00:00:00
setstate rr_Baby 2015-01-04 16:19:19 durTimerAbsence_cr 0
setstate rr_Baby 2019-03-14 20:36:17 durTimerPresence 44454:05:56
setstate rr_Baby 2019-03-14 20:36:17 durTimerPresence_cr 2667246
setstate rr_Baby 2019-05-04 13:30:30 durTimerPresence 00:00:00
setstate rr_Baby 2019-05-04 13:30:30 durTimerPresence_cr 0
setstate rr_Baby 2015-01-04 16:19:19 durTimerSleep 00:00:00
setstate rr_Baby 2015-01-04 16:19:19 durTimerSleep_cr 0
setstate rr_Baby 2014-02-16 14:30:21 lastArrival 2014-02-16 14:30:21
setstate rr_Baby 2019-05-04 13:30:30 lastArrival 2019-05-04 13:30:30
setstate rr_Baby 2014-02-17 20:45:12 lastAwake 2014-02-17 20:45:12
setstate rr_Baby 2014-02-16 14:32:38 lastDeparture 0
setstate rr_Baby 2019-05-04 13:30:30 lastDeparture 2019-05-04 13:30:30
setstate rr_Baby 2019-05-04 13:30:30 lastDurAbsence 00:00:00
setstate rr_Baby 2019-05-04 13:30:30 lastDurAbsence_cr 0
setstate rr_Baby 2019-05-04 13:30:30 lastDurPresence 00:16:32
setstate rr_Baby 2019-05-04 13:30:30 lastDurPresence_cr 17
setstate rr_Baby 2014-02-17 20:45:12 lastDurSleep 30:13:59
setstate rr_Baby 2014-02-16 14:30:21 lastLocation undefined
setstate rr_Baby 2014-02-16 14:31:13 lastMood sleepy
setstate rr_Baby 2019-05-04 13:10:23 lastLocation home
setstate rr_Baby 2019-05-04 13:30:30 lastMood calm
setstate rr_Baby 2014-02-16 14:31:13 lastSleep 2014-02-16 14:31:13
setstate rr_Baby 2014-02-17 20:45:12 lastState asleep
setstate rr_Baby 2014-02-16 14:30:21 location home
setstate rr_Baby 2014-02-17 20:45:12 mood calm
setstate rr_Baby 2014-02-16 14:30:21 presence present
setstate rr_Baby 2014-02-17 20:45:12 state home
setstate rr_Baby 2019-05-04 13:30:30 lastState absent
setstate rr_Baby 2019-05-04 13:10:23 location home
setstate rr_Baby 2019-05-04 13:30:30 mood calm
setstate rr_Baby 2019-05-04 13:30:30 presence present
setstate rr_Baby 2019-05-04 13:30:30 state home
setstate rr_Baby 2014-02-16 14:30:21 wayhome 0
setstate rr_Daughter gone
setstate rr_Daughter 2019-03-14 20:36:17 durTimerAbsence 44453:38:18
setstate rr_Daughter 2019-03-14 20:36:17 durTimerAbsence_cr 2667218
setstate rr_Daughter 2015-01-04 16:19:19 durTimerPresence 00:00:00
setstate rr_Daughter 2015-01-04 16:19:19 durTimerPresence_cr 0
setstate rr_Daughter home
setstate rr_Daughter 2019-05-04 13:05:40 durTimerAbsence 00:00:00
setstate rr_Daughter 2019-05-04 13:05:40 durTimerAbsence_cr 0
setstate rr_Daughter 2019-05-04 13:30:30 durTimerPresence 00:00:00
setstate rr_Daughter 2019-05-04 13:30:30 durTimerPresence_cr 0
setstate rr_Daughter 2015-01-04 16:19:19 durTimerSleep 00:00:00
setstate rr_Daughter 2015-01-04 16:19:19 durTimerSleep_cr 0
setstate rr_Daughter 2014-02-16 14:57:58 lastArrival 2014-02-16 14:57:58
setstate rr_Daughter 2019-05-04 13:30:30 lastArrival 2019-05-04 13:30:30
setstate rr_Daughter 2014-02-16 14:02:48 lastAwake 2014-02-16 14:02:48
setstate rr_Daughter 2014-02-16 14:57:59 lastDeparture 2014-02-16 14:57:59
setstate rr_Daughter 2014-02-16 14:57:58 lastDurAbsence 00:23:49
setstate rr_Daughter 2014-02-16 14:57:59 lastDurPresence 00:00:01
setstate rr_Daughter 2019-05-04 13:30:30 lastDeparture 2019-05-04 13:30:30
setstate rr_Daughter 2019-05-04 13:30:30 lastDurAbsence 00:00:00
setstate rr_Daughter 2019-05-04 13:30:30 lastDurAbsence_cr 0
setstate rr_Daughter 2019-05-04 13:30:30 lastDurPresence 00:16:32
setstate rr_Daughter 2019-05-04 13:30:30 lastDurPresence_cr 17
setstate rr_Daughter 2014-02-16 14:02:48 lastDurSleep 00:08:12
setstate rr_Daughter 2014-02-16 14:57:59 lastLocation home
setstate rr_Daughter 2014-02-16 14:57:59 lastMood calm
setstate rr_Daughter 2019-05-04 13:30:30 lastMood calm
setstate rr_Daughter 2014-02-16 13:54:36 lastSleep 2014-02-16 13:54:36
setstate rr_Daughter 2015-01-04 16:19:19 lastState absent
setstate rr_Daughter 2019-05-04 13:30:30 lastState absent
setstate rr_Daughter 2014-02-16 14:57:59 location underway
setstate rr_Daughter 2014-02-16 14:57:59 mood -
setstate rr_Daughter 2014-02-16 14:57:59 presence absent
setstate rr_Daughter 2015-01-04 16:19:19 state gone
setstate rr_Daughter 2019-05-04 13:30:30 mood calm
setstate rr_Daughter 2019-05-04 13:30:30 presence present
setstate rr_Daughter 2019-05-04 13:30:30 state home
setstate rr_Daughter 2014-02-16 13:46:26 wayhome 0
setstate rr_Father gone
setstate rr_Father 2019-03-14 20:36:17 durTimerAbsence 44454:09:25
setstate rr_Father 2019-03-14 20:36:17 durTimerAbsence_cr 2667249
setstate rr_Father 2015-01-04 16:19:19 durTimerPresence 00:00:00
setstate rr_Father 2015-01-04 16:19:19 durTimerPresence_cr 0
setstate rr_Father home
setstate rr_Father 2019-05-04 13:05:40 durTimerAbsence 00:00:00
setstate rr_Father 2019-05-04 13:05:40 durTimerAbsence_cr 0
setstate rr_Father 2019-05-04 13:30:30 durTimerPresence 00:00:00
setstate rr_Father 2019-05-04 13:30:30 durTimerPresence_cr 0
setstate rr_Father 2015-01-04 16:19:19 durTimerSleep 00:00:00
setstate rr_Father 2015-01-04 16:19:19 durTimerSleep_cr 0
setstate rr_Father 2014-02-16 14:16:17 lastArrival 2014-02-16 14:16:17
setstate rr_Father 2014-02-16 14:26:52 lastDeparture 2014-02-16 14:26:52
setstate rr_Father 2014-02-16 14:16:17 lastDurAbsence 00:00:01
setstate rr_Father 2014-02-16 14:26:52 lastDurPresence 00:10:35
setstate rr_Father 2019-05-04 13:30:30 lastArrival 2019-05-04 13:30:30
setstate rr_Father 2019-05-04 13:10:35 lastAwake 2019-05-04 13:10:35
setstate rr_Father 2019-05-04 13:30:30 lastDeparture 2019-05-04 13:30:30
setstate rr_Father 2019-05-04 13:30:30 lastDurAbsence 00:00:00
setstate rr_Father 2019-05-04 13:30:30 lastDurAbsence_cr 0
setstate rr_Father 2019-05-04 13:30:30 lastDurPresence 00:16:32
setstate rr_Father 2019-05-04 13:30:30 lastDurPresence_cr 17
setstate rr_Father 2019-05-04 13:10:35 lastDurSleep 00:00:01
setstate rr_Father 2019-05-04 13:10:35 lastDurSleep_cr 0
setstate rr_Father 2014-02-16 14:26:52 lastLocation home
setstate rr_Father 2014-02-16 14:26:52 lastMood calm
setstate rr_Father 2015-01-04 16:19:19 lastState absent
setstate rr_Father 2019-05-04 13:30:30 lastMood calm
setstate rr_Father 2019-05-04 13:10:34 lastSleep 2019-05-04 13:10:34
setstate rr_Father 2019-05-04 13:30:30 lastState absent
setstate rr_Father 2014-02-16 14:26:52 location underway
setstate rr_Father 2014-02-16 14:26:52 mood -
setstate rr_Father 2014-02-16 14:26:52 presence absent
setstate rr_Father 2015-01-04 16:19:19 state gone
setstate rr_Father 2019-05-04 13:30:30 mood calm
setstate rr_Father 2019-05-04 13:30:30 presence present
setstate rr_Father 2019-05-04 13:30:30 state home
setstate rr_Father 2014-02-16 13:46:02 wayhome 0
setstate rr_Mother home
setstate rr_Mother 2015-01-04 16:19:19 durTimerAbsence 00:00:00
setstate rr_Mother 2015-01-04 16:19:19 durTimerAbsence_cr 0
setstate rr_Mother 2019-03-14 20:36:17 durTimerPresence 44454:20:00
setstate rr_Mother 2019-03-14 20:36:17 durTimerPresence_cr 2667260
setstate rr_Mother 2019-05-04 13:30:30 durTimerPresence 00:00:00
setstate rr_Mother 2019-05-04 13:30:30 durTimerPresence_cr 0
setstate rr_Mother 2015-01-04 16:19:19 durTimerSleep 00:00:00
setstate rr_Mother 2015-01-04 16:19:19 durTimerSleep_cr 0
setstate rr_Mother 2014-02-16 14:16:17 lastArrival 2014-02-16 14:16:17
setstate rr_Mother 2014-02-16 14:16:16 lastDeparture 2014-02-16 14:16:16
setstate rr_Mother 2014-02-16 14:16:17 lastDurAbsence 00:00:01
setstate rr_Mother 2014-02-16 14:16:16 lastDurPresence 00:00:02
setstate rr_Mother 2019-05-04 13:30:30 lastArrival 2019-05-04 13:30:30
setstate rr_Mother 2019-05-04 13:30:30 lastDeparture 2019-05-04 13:30:30
setstate rr_Mother 2019-05-04 13:30:30 lastDurAbsence 00:00:00
setstate rr_Mother 2019-05-04 13:30:30 lastDurAbsence_cr 0
setstate rr_Mother 2019-05-04 13:30:30 lastDurPresence 00:16:32
setstate rr_Mother 2019-05-04 13:30:30 lastDurPresence_cr 17
setstate rr_Mother 2014-02-16 14:16:16 lastLocation home
setstate rr_Mother 2014-02-16 14:16:16 lastMood calm
setstate rr_Mother 2014-02-16 14:16:17 lastState absent
setstate rr_Mother 2019-05-04 13:30:30 lastMood calm
setstate rr_Mother 2019-05-04 13:30:30 lastState absent
setstate rr_Mother 2014-02-16 14:16:17 location home
setstate rr_Mother 2014-02-16 14:16:17 mood calm
setstate rr_Mother 2014-02-16 14:16:17 presence present
setstate rr_Mother 2014-02-16 14:16:17 state home
setstate rr_Mother 2019-05-04 13:30:30 mood calm
setstate rr_Mother 2019-05-04 13:30:30 presence present
setstate rr_Mother 2019-05-04 13:30:30 state home
setstate rr_Mother 2014-02-16 13:46:09 wayhome 0
setstate rr_Son gone
setstate rr_Son 2019-03-14 20:36:17 durTimerAbsence 44453:38:16
setstate rr_Son 2019-03-14 20:36:17 durTimerAbsence_cr 2667218
setstate rr_Son 2015-01-04 16:19:19 durTimerPresence 00:00:00
setstate rr_Son 2015-01-04 16:19:19 durTimerPresence_cr 0
setstate rr_Son home
setstate rr_Son 2019-05-04 13:05:40 durTimerAbsence 00:00:00
setstate rr_Son 2019-05-04 13:05:40 durTimerAbsence_cr 0
setstate rr_Son 2019-05-04 13:30:30 durTimerPresence 00:00:00
setstate rr_Son 2019-05-04 13:30:30 durTimerPresence_cr 0
setstate rr_Son 2015-01-04 16:19:19 durTimerSleep 00:00:00
setstate rr_Son 2015-01-04 16:19:19 durTimerSleep_cr 0
setstate rr_Son 2014-02-16 14:58:00 lastArrival 2014-02-16 14:58:00
setstate rr_Son 2014-02-16 14:06:44 lastAwake 2014-02-16 14:06:44
setstate rr_Son 2014-02-16 14:58:01 lastDeparture 2014-02-16 14:58:01
setstate rr_Son 2014-02-16 14:58:00 lastDurAbsence 00:23:50
setstate rr_Son 2014-02-16 14:58:01 lastDurPresence 00:00:01
setstate rr_Son 2014-02-16 14:06:44 lastDurSleep 00:00:11
setstate rr_Son 2019-05-04 13:30:30 lastArrival 2019-05-04 13:30:30
setstate rr_Son 2019-05-04 13:09:50 lastAwake 2019-05-04 13:09:50
setstate rr_Son 2019-05-04 13:30:30 lastDeparture 2019-05-04 13:30:30
setstate rr_Son 2019-05-04 13:30:30 lastDurAbsence 00:00:00
setstate rr_Son 2019-05-04 13:30:30 lastDurAbsence_cr 0
setstate rr_Son 2019-05-04 13:30:30 lastDurPresence 00:16:32
setstate rr_Son 2019-05-04 13:30:30 lastDurPresence_cr 17
setstate rr_Son 2019-05-04 13:09:50 lastDurSleep 00:00:03
setstate rr_Son 2019-05-04 13:09:50 lastDurSleep_cr 0
setstate rr_Son 2014-02-16 14:58:01 lastLocation home
setstate rr_Son 2014-02-16 14:58:01 lastMood calm
setstate rr_Son 2014-02-16 14:06:33 lastSleep 2014-02-16 14:06:33
setstate rr_Son 2015-01-04 16:19:19 lastState absent
setstate rr_Son 2014-02-16 14:58:01 location underway
setstate rr_Son 2014-02-16 14:58:01 mood -
setstate rr_Son 2014-02-16 14:58:01 presence absent
setstate rr_Son 2015-01-04 16:19:19 state gone
setstate rr_Son 2019-05-04 13:30:30 lastMood calm
setstate rr_Son 2019-05-04 13:09:47 lastSleep 2019-05-04 13:09:47
setstate rr_Son 2019-05-04 13:30:30 lastState absent
setstate rr_Son 2019-05-04 13:09:44 location home
setstate rr_Son 2019-05-04 13:30:30 mood calm
setstate rr_Son 2019-05-04 13:30:30 presence present
setstate rr_Son 2019-05-04 13:30:30 state home
setstate rr_Son 2014-02-16 13:46:38 wayhome 0
setstate sunRise Next: 06:08:52
setstate sunRise 2019-03-14 20:36:02 state Next: 06:08:52

View File

@ -209,13 +209,13 @@ attr WEB styleData {\
"left": 0,\
"top": 300,\
"width": 280,\
"height": 60,\
"height": 40,\
"oTop": 40,\
"oLeft": 0\
},\
"Pos.Room_Residents_grp_Guests": {\
"left": 300,\
"top": 180,\
"top": 220,\
"width": 280,\
"height": 80,\
"oTop": 40,\
@ -225,7 +225,7 @@ attr WEB styleData {\
"left": 300,\
"top": -20,\
"width": 280,\
"height": 160,\
"height": 200,\
"oTop": 40,\
"oLeft": 0\
},\
@ -247,7 +247,7 @@ attr WEB styleData {\
},\
"Pos.Room_Residents_grp_notify": {\
"left": 300,\
"top": 300,\
"top": 340,\
"width": 280,\
"height": 58,\
"oTop": 40,\
@ -300,6 +300,46 @@ attr WEB styleData {\
"height": 40,\
"oTop": 40,\
"oLeft": 0\
},\
"Pos.Room_Residents_grp_Pets": {\
"left": 0,\
"top": 380,\
"width": 280,\
"height": 40,\
"oTop": 40,\
"oLeft": 0\
},\
"Pos.style_list_config_file": {\
"left": 0,\
"top": 0,\
"width": 320,\
"height": 40,\
"oTop": 20,\
"oLeft": 0\
},\
"Pos.style_list_Own_modules_and_helper_files": {\
"left": 0,\
"top": 80,\
"width": 320,\
"height": 60,\
"oTop": 20,\
"oLeft": 0\
},\
"Pos.style_list_Gplot_files": {\
"left": 0,\
"top": 160,\
"width": 320,\
"height": 2940,\
"oTop": 20,\
"oLeft": 0\
},\
"Pos.style_list_Style_files": {\
"left": 0,\
"top": 3120,\
"width": 320,\
"height": 1060,\
"oTop": 20,\
"oLeft": 0\
}\
}\
}
@ -491,7 +531,7 @@ attr lcCinema webCmd scene
define rgr_Residents RESIDENTS
setuuid rgr_Residents 5c8aad22-f33f-c296-9f6e-d7c06ff9e978a875
attr rgr_Residents alias Residents
attr rgr_Residents devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home
attr rgr_Residents devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rgr_Residents group Home State
attr rgr_Residents icon control_building_filled
attr rgr_Residents room Residents
@ -500,7 +540,7 @@ attr rgr_Residents webCmd state
define rgr_Parents RESIDENTS
setuuid rgr_Parents 5c8aad22-f33f-c296-8544-d47dbd7349ad5154
attr rgr_Parents alias Parents
attr rgr_Parents devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home
attr rgr_Parents devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rgr_Parents group Home State
attr rgr_Parents icon control_building_filled
attr rgr_Parents room Residents
@ -509,7 +549,7 @@ attr rgr_Parents webCmd state
define rgr_Children RESIDENTS
setuuid rgr_Children 5c8aad22-f33f-c296-d031-a3670b93d66b0df1
attr rgr_Children alias Children
attr rgr_Children devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home
attr rgr_Children devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rgr_Children group Home State
attr rgr_Children icon control_building_filled
attr rgr_Children room Residents
@ -518,7 +558,7 @@ attr rgr_Children webCmd state
define rgr_Guests RESIDENTS
setuuid rgr_Guests 5c8aad22-f33f-c296-682c-2f6eec7e6b45b373
attr rgr_Guests alias Guests
attr rgr_Guests devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home
attr rgr_Guests devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rgr_Guests group Home State
attr rgr_Guests icon control_building_filled
attr rgr_Guests room Residents
@ -549,19 +589,20 @@ attr rg_Guest2 webCmd state
define rr_Father ROOMMATE rgr_Residents,rgr_Parents
setuuid rr_Father 5c8aad22-f33f-c296-729e-ae6ad0649b98055d
attr rr_Father alias Status
attr rr_Father devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown
attr rr_Father devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Father group Father
attr rr_Father icon status_available
attr rr_Father icon people_sensor
attr rr_Father room Residents
attr rr_Father rr_autoGoneAfter 0.1
attr rr_Father rr_passStatusTo rp_Dog
attr rr_Father sortby 0
attr rr_Father webCmd state
define rr_Mother ROOMMATE rgr_Residents,rgr_Parents
setuuid rr_Mother 5c8aad22-f33f-c296-0a3f-b4c20c1bee0c0b72
attr rr_Mother alias Status
attr rr_Mother devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown
attr rr_Mother devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Mother group Mother
attr rr_Mother icon status_available
attr rr_Mother icon people_sensor
attr rr_Mother room Residents
attr rr_Mother rr_autoGoneAfter 0.1
attr rr_Mother rr_passPresenceTo rr_Baby
@ -570,18 +611,18 @@ attr rr_Mother webCmd state
define rr_Daughter ROOMMATE rgr_Residents,rgr_Children
setuuid rr_Daughter 5c8aad22-f33f-c296-a4ef-b6f7c16798aff93c
attr rr_Daughter alias Status
attr rr_Daughter devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown
attr rr_Daughter devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Daughter group Daughter
attr rr_Daughter icon status_available
attr rr_Daughter icon people_sensor
attr rr_Daughter room Residents
attr rr_Daughter sortby 0
attr rr_Daughter webCmd state
define rr_Son ROOMMATE rgr_Residents,rgr_Children
setuuid rr_Son 5c8aad22-f33f-c296-a0f4-9a5626678ffc24ec
attr rr_Son alias Status
attr rr_Son devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown
attr rr_Son devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Son group Son
attr rr_Son icon status_available
attr rr_Son icon people_sensor
attr rr_Son room Residents
attr rr_Son sortby 0
attr rr_Son webCmd state
@ -594,12 +635,30 @@ attr ResidentsComeHome room Residents
define rr_Baby ROOMMATE rgr_Residents,rgr_Children
setuuid rr_Baby 5c8aad22-f33f-c296-6029-997051403c22c0c4
attr rr_Baby alias Status
attr rr_Baby devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown
attr rr_Baby devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Baby group Baby
attr rr_Baby icon status_available
attr rr_Baby icon people_sensor
attr rr_Baby room Residents
attr rr_Baby sortby 0
attr rr_Baby webCmd state
define rgr_Pets RESIDENTS
setuuid rgr_Pets 5ccd71d7-f33f-57f8-54a1-b4a40f34e54b2b80
attr rgr_Pets alias Pets
attr rgr_Pets devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rgr_Pets group Home State
attr rgr_Pets icon control_building_filled
attr rgr_Pets room Residents
attr rgr_Pets webCmd state
define rp_Dog PET rgr_Residents,rgr_Pets
setuuid rp_Dog 5ccd71f6-f33f-57f8-3e8b-0031e157fe421d82
attr rp_Dog alias Dog
attr rp_Dog devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rp_Dog group Pets
attr rp_Dog icon dog_silhouette
attr rp_Dog room Residents
attr rp_Dog rp_realname alias
attr rp_Dog sortby 1
attr rp_Dog webCmd state
define RGB readingsProxy RGB
setuuid RGB 5c8aad22-f33f-c296-a871-85b8dd81f8e7aabf
attr RGB userattr Light Light_map structexclude