Hi all and happy new year!

I have a server minifarm at home but it's Kyiv/Ukraine so wall power goes on and off unexpectedly quite a few times a day. What I want is for servers to gracefully start when power appears and gracefully shut down when it disappears.

To that end I've got some APC Back-UPS RS 1000, set up an usbhid-ups driver and upsd. upsmon configuration turned out to be too convoluted so I decided to write my own custom solution, since the protocol is fairly simple.

So the daemon I wrote connects to upsd and monitors input.voltage and ups.status. BTW had to override pollinterval = 1 and pollfreq = 1 in ups.conf to make input.voltage report input voltage in more or less real-time instead of cached.

The code logic is such that as soon as input.voltage goes below input.transfer.low and ups.status goes from OL to OB the farm shutdown is initiated and ups is issued INSTCMD load.off.delay command and is smart enough to shut itself down too.

So far this part of the project works OK -- the farm turns itself off nicely and unattended.

BUT.

There seem to be lack of facility to do shutdown.return though. Still have to to that manually each time.

I've attached upsc/upscmd/upsrw outputs but so far haven't figured out a combination that might do the trick. Provided my UPS can do it, of course, but why shouldn't it?

From what I've read in the certain discussion on this maillist that occurred 12 years ago and from nut documentation I suspect the hope is not lost and it is possible to somehow hack in proper shutdown.return

But my expertise ends here. Should anyone help me run all the debug mode magic I've read of and make good use of it, my thankfullness will have no bounds.

Best regards,

G.
upsc

battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.date: 2001/09/25
battery.mfr.date: 2007/07/20
battery.runtime: 105
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 26.8
battery.voltage.nominal: 24.0
device.mfr: American Power Conversion
device.model: Back-UPS RS 1000
device.serial: 8B0729R16742
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 1
driver.parameter.pollinterval: 1
driver.parameter.port: auto
driver.parameter.synchronous: auto
driver.version: 2.8.0-Windows-190-g9fb8d6d5f
driver.version.data: APC HID 0.100
driver.version.internal: 0.49
driver.version.usb: libusb-1.0.26 (API: 0x1000109)
input.sensitivity: medium
input.transfer.high: 264
input.transfer.low: 194
input.transfer.reason: input voltage out of range
input.voltage: 226.0
input.voltage.nominal: 230
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.firmware: 7.g9a.I
ups.firmware.aux: g9a
ups.load: 14
ups.mfr: American Power Conversion
ups.mfr.date: 2007/07/20
ups.model: Back-UPS RS 1000
ups.productid: 0002
ups.realpower.nominal: 600
ups.serial: 8B0729R16742
ups.status: OL LB
ups.test.result: No test initiated
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d

upscmd
Instant commands supported on UPS [NorkaPower]:

beeper.disable - Disable the UPS beeper
beeper.enable - Enable the UPS beeper
beeper.mute - Temporarily mute the UPS beeper
beeper.off - Obsolete (use beeper.disable or beeper.mute)
beeper.on - Obsolete (use beeper.enable)
load.off - Turn off the load immediately
load.off.delay - Turn off the load with a delay (seconds)
shutdown.reboot - Shut down the load briefly while rebooting the UPS
shutdown.stop - Stop a shutdown in progress
test.battery.start.deep - Start a deep battery test
test.battery.start.quick - Start a quick battery test
test.battery.stop - Stop the battery test
test.panel.start - Start testing the UPS panel
test.panel.stop - Stop a UPS panel test

upsrw

[battery.charge.low]
Remaining battery level when UPS switches to LB (percent)
Type: STRING
Maximum length: 10
Value: 10

[battery.mfr.date]
Battery manufacturing date
Type: STRING
Maximum length: 10
Value: 2007/07/20

[battery.runtime.low]
Remaining battery runtime when UPS switches to LB (seconds)
Type: STRING
Maximum length: 10
Value: 120

[input.sensitivity]
Input power sensitivity
Type: STRING
Maximum length: 10
Value: medium

[input.transfer.high]
High voltage transfer point (V)
Type: STRING
Maximum length: 10
Value: 264

[input.transfer.low]
Low voltage transfer point (V)
Type: STRING
Maximum length: 10
Value: 194

[ups.delay.shutdown]
Interval to wait after shutdown with delay command (seconds)
Type: STRING
Maximum length: 10
Value: 20
_______________________________________________
Nut-upsuser mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser

Reply via email to