Device-Nest
view release on metacpan or search on metacpan
lib/Device/Nest.pm view on Meta::CPAN
Returns 0 on failure
=cut
sub fetch_Thermostat_Designation {
my $self = shift;
my $response = $self->{'ua'}->get($self->{'device_url'});
$self->{'last_code'} = $response->code;
if ($response->is_success) {
my $decoded_response = decode_json($response->content);
my $designation = ($decoded_response->{'thermostats'});
my @designation2 = keys(%$designation);
$self->{'thermostat'} = $designation2[0];
$self->{'thermostat_url'} = "https://developer-api.nest.com/devices/thermostats/".$self->{'thermostat'};
print "Thermostat designation: ".$self->{'thermostat'}."\n" if ($self->{'debug'});
my $response = $self->{'ua'}->get("https://developer-api.nest.com/structures?auth=".$self->{'auth_token'});
$self->{'last_code'} = $response->code;
if ($response->is_success) {
my $decoded_response = decode_json($response->content);
my @designation = keys(%$decoded_response);
$self->{'structure'} = $designation[0];
$self->{'struct_url'} = "https://developer-api.nest.com/structures/".$self->{'structure'}."?auth=".$self->{'auth_token'};
print "Structure Designation: ".$self->{'structure'}."\n" if ($self->{'debug'});
return 1;
} else {
print "Nest->fetch_Thermostat_Designation(): Response from server for structure URL is not valid\n";
print " \"".$response->content."\"\n\n";
return 0;
}
} else {
lib/Device/Nest.pm view on Meta::CPAN
if (!defined $self->{'thermostat'}) {
print "Nest->fetch_Away_State(): No thermostat designation found\n";
return 0;
}
my $response = $self->{'ua'}->get($self->{'struct_url'});
$self->{'last_code'} = $response->code;
if ($response->is_success) {
my $decoded_response = decode_json($response->content);
return $decoded_response->{'away'};
} else {
print "Nest->fetch_Away_State(): Failed with return code ".$self->get_last_code()."\n";
return 0;
}
}
#*****************************************************************
=head2 fetch_Country_Code - Fetch the country code reported by Nest
lib/Device/Nest.pm view on Meta::CPAN
if (!defined $self->{'thermostat'}) {
print "Nest->fetch_Country_Code(): No thermostat designation found\n";
return 0;
}
my $response = $self->{'ua'}->get($self->{'struct_url'});
$self->{'last_code'} = $response->code;
if ($response->is_success) {
my $decoded_response = decode_json($response->content);
return $decoded_response->{$self->{'structure'}}->{'country_code'};
} else {
print "Nest->fetch_Country_Code(): Failed with return code ".$self->get_last_code()."\n";
return 0;
}
}
#*****************************************************************
=head2 fetch_Locale - Fetch the locale reported by Nest
lib/Device/Nest.pm view on Meta::CPAN
my $url = shift;
my $tag = shift;
my $time_before = gettimeofday;
my $response = $self->{'ua'}->get($url);
my $time_after = gettimeofday;
$self->{'last_exec_time'} = eval{($time_after-$time_before)*1000};
$self->{'last_code'} = $response->code;
if ($response->is_success) {
my $decoded_response = decode_json($response->content);
# print Dumper($decoded_response);
return $decoded_response->{'thermostats'}->{$self->{'thermostat'}}->{$tag};
} else {
print "\n".(caller(1))[3]."(): Failed with return code ".$self->get_last_code()."\n";
return 0;
}
}
#*****************************************************************
sub __process_set {
( run in 0.275 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )