App-RPi-EnvUI
view release on metacpan or search on metacpan
lib/App/RPi/EnvUI.pm view on Meta::CPAN
my $want = params->{want};
my $log = $log->child('/get_control');
my $value = $api->_config_control($want);
$log->_5("param: $want, value: $value");
return $value;
};
get '/get_aux/:aux' => sub {
my $aux_id = params->{aux};
my $log = $log->child('/get_aux');
$log->_7("fetching aux object for $aux_id");
$api->switch($aux_id);
return to_json $api->aux($aux_id);
};
get '/get_aux_override/:aux' => sub {
my $aux_id = params->{aux};
my $log = $log->child('/get_aux_override');
$log->_7("fetching aux override value for $aux_id");
return to_json $api->aux_override($aux_id);
};
get '/fetch_env' => sub {
my $log = $log->child('/fetch_env');
my $data = $api->env;
$log->_6(
"temp: $data->{temp}, humidity: $data->{humidity}"
);
return to_json {
temp => $data->{temp},
humidity => $data->{humidity},
error => $data->{error}
};
};
#
# set routes
#
get '/set_aux_state/:aux/:state' => sub {
if (
(request->address ne '127.0.0.1' && ! session 'logged_in_user')
|| $ENV{UNIT_TEST}){
return to_json {
error => 'unauthorized request. You must be logged in'
};
}
my $aux_id = params->{aux};
my $state = $api->_bool(params->{state});
my $log = $log->child('/set_aux_state');
$log->_5("aux_id: $aux_id, state: $state");
$state = $api->aux_state($aux_id, $state);
$log->_6("$aux_id updated state: $state");
$api->switch($aux_id);
return to_json {
aux => $aux_id,
state => $state,
};
};
get '/set_aux_override/:aux/:override' => sub {
my $log = $log->child('/set_aux_override');
if (
(request->address ne '127.0.0.1' && ! session 'logged_in_user')
|| $ENV{UNIT_TEST}){
$log->_1("attempted call of a 'set' operation while not logged in");
return to_json {
error => 'unauthorized request. You must be logged in'
};
}
my $aux_id = params->{aux};
my $override = $api->_bool(params->{override});
$log->_5("setting override for aux id: $aux_id");
$override = $api->aux_override($aux_id, $override);
$log->_5("current override status for aux id $aux_id is $override");
if ($override == -1){
$log->_5("override for aux id $aux_id is currently disabled");
}
return to_json {
aux => $aux_id,
override => $override,
};
};
true;
__END__
=head1 NAME
App::RPi::EnvUI - One-page asynchronous grow room environment control web
application
=head1 SYNOPSIS
cd ~/envui
sudo plackup bin/app.pl
Now direct your browser at your Pi, on port 3000:
http://raspberry.pi:3000
=head1 DESCRIPTION
( run in 1.718 second using v1.01-cache-2.11-cpan-39bf76dae61 )