* Mon Mar 03 2025 Brian Read <brianr@koozali.org> 11.0.0-7.sme

- Enhance UPS Status screen [SME: ]
This commit is contained in:
Brian Read 2025-03-03 15:54:20 +00:00
parent 6592179f55
commit b8690bf214
4 changed files with 38 additions and 24 deletions
root/usr/share/smanager
lib/SrvMngr/Controller
themes/default/templates/partials
smeserver-nutUPS.spec

@ -77,7 +77,7 @@ my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
#'Data1'=>'Data for STATUS', #Example
# fields from Inputs in STATUS $fields['STATUS']
'UPSStatus'=>$c->get_ups_status(),
'ups_data' => $c->get_ups_status_as_hash()
);
return %ret;
}
@ -239,6 +239,16 @@ sub get_ups_status {
}
}
sub get_ups_status_as_hash {
$c = shift;
$string = $c->get_ups_status();
my %hash;
while ($string =~ /^(.+?):\s*(.+)$/mg) {
$hash{$1} = $2;
}
return \%hash
}
sub get_status_from_device {
my ($c,$device) = @_;
my $command = '/usr/bin/upsc';

@ -35,13 +35,17 @@
<p class='paragraph para1'>
%=l('nut_Descriptive_paragraph')
</p>
<!--
<span class=label>
%=l('nut_Status_(from_upsc)')
</span><span class=data>
% param 'UPSStatus' => $nut_data->{UPSStatus} unless param 'UPSStatus';
%= text_area 'UPSStatus', cols=>55, rows=>35, Readonly=>'true'
</span><br>
-->
%= include 'partials/_nut_UPS_STATUS'
%# Probably finally by a submit.
%end

@ -1,6 +1,3 @@
% layout 'default';
% title 'UPS Status';
<h1>UPS Status</h1>
%= stylesheet '/css/nut_ups-status-page.css'
<div class="ups-status-page">
@ -8,42 +5,42 @@
<div class="card">
<h2>Device Information</h2>
<table>
<tr><td>Manufacturer:</td><td><%= $ups_data->{'device.mfr'} %></td></tr>
<tr><td>Model:</td><td><%= $ups_data->{'device.model'} %></td></tr>
<tr><td>Serial:</td><td><%= $ups_data->{'device.serial'} %></td></tr>
<tr><td>Type:</td><td><%= $ups_data->{'device.type'} %></td></tr>
<tr><td>Manufacturer:</td><td><%= $nut_data->{'ups_data'}->{'device.mfr'} %></td></tr>
<tr><td>Model:</td><td><%= $nut_data->{'ups_data'}->{'device.model'} %></td></tr>
<tr><td>Serial:</td><td><%= $nut_data->{'ups_data'}->{'device.serial'} %></td></tr>
<tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'device.type'} %></td></tr>
</table>
</div>
<div class="card">
<h2>Battery Status</h2>
<table>
<tr><td>Charge:</td><td><%= $ups_data->{'battery.charge'} %>%</td></tr>
<tr><td>Runtime:</td><td><%= sprintf("%.2f", $ups_data->{'battery.runtime'} / 60) %> minutes</td></tr>
<tr><td>Voltage:</td><td><%= $ups_data->{'battery.voltage'} %>V</td></tr>
<tr><td>Type:</td><td><%= $ups_data->{'battery.type'} %></td></tr>
<tr><td>Charge:</td><td><%= $nut_data->{'ups_data'}->{'battery.charge'} %>%</td></tr>
<tr><td>Runtime:</td><td><%= sprintf("%.2f", $nut_data->{'ups_data'}->{'battery.runtime'} / 60) %> minutes</td></tr>
<tr><td>Voltage:</td><td><%= $nut_data->{'ups_data'}->{'battery.voltage'} %>V</td></tr>
<tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'battery.type'} %></td></tr>
</table>
</div>
<div class="card">
<h2>Input Power</h2>
<table>
<tr><td>Voltage:</td><td><%= $ups_data->{'input.voltage'} %>V</td></tr>
<tr><td>Nominal Voltage:</td><td><%= $ups_data->{'input.voltage.nominal'} %>V</td></tr>
<tr><td>Sensitivity:</td><td><%= $ups_data->{'input.sensitivity'} %></td></tr>
<tr><td>Transfer High:</td><td><%= $ups_data->{'input.transfer.high'} %>V</td></tr>
<tr><td>Transfer Low:</td><td><%= $ups_data->{'input.transfer.low'} %>V</td></tr>
<tr><td>Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage'} %>V</td></tr>
<tr><td>Nominal Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage.nominal'} %>V</td></tr>
<tr><td>Sensitivity:</td><td><%= $nut_data->{'ups_data'}->{'input.sensitivity'} %></td></tr>
<tr><td>Transfer High:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.high'} %>V</td></tr>
<tr><td>Transfer Low:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.low'} %>V</td></tr>
</table>
</div>
<div class="card">
<h2>UPS Status</h2>
<table>
<tr><td>Status:</td><td><%= $ups_data->{'ups.status'} %></td></tr>
<tr><td>Load:</td><td><%= $ups_data->{'ups.load'} %>%</td></tr>
<tr><td>Beeper:</td><td><%= $ups_data->{'ups.beeper.status'} %></td></tr>
<tr><td>Firmware:</td><td><%= $ups_data->{'ups.firmware'} %></td></tr>
<tr><td>Test Result:</td><td><%= $ups_data->{'ups.test.result'} %></td></tr>
<tr><td>Status:</td><td><%= $nut_data->{'ups_data'}->{'ups.status'} %></td></tr>
<tr><td>Load:</td><td><%= $nut_data->{'ups_data'}->{'ups.load'} %>%</td></tr>
<tr><td>Beeper:</td><td><%= $nut_data->{'ups_data'}->{'ups.beeper.status'} %></td></tr>
<tr><td>Firmware:</td><td><%= $nut_data->{'ups_data'}->{'ups.firmware'} %></td></tr>
<tr><td>Test Result:</td><td><%= $nut_data->{'ups_data'}->{'ups.test.result'} %></td></tr>
</table>
</div>
</div>

@ -4,7 +4,7 @@ Summary: SME server - nut UPS interaction module
%define name smeserver-nutUPS
Name: %{name}
%define version 11.0.0
%define release 6
%define release 7
Version: %{version}
Release: %{release}%{?dist}
License: GPL
@ -25,6 +25,9 @@ A module which configures the Network UPS Tools suite for operation with
the SME server software.
%changelog
* Mon Mar 03 2025 Brian Read <brianr@koozali.org> 11.0.0-7.sme
- Enhance UPS Status screen [SME: ]
* Mon Mar 03 2025 Brian Read <brianr@koozali.org> 11.0.0-6.sme
- Add in SM2 NutUPS configuration and status panel [SME: 12949]