[Nut-upsdev] [Nut-upsuser] APC Modbus support is finally here!

Jim Klimov jimklimov+nut at gmail.com
Fri Nov 24 16:42:32 GMT 2023


I believe some fixes were applied to the branch since your report (most
visibly, about battery time settings), are you in position to test how it
behaves now? :)

Thanks in advance,
Jim Klimov


On Wed, Nov 22, 2023 at 3:20 PM Jim Klimov <jimklimov+nut at gmail.com> wrote:

> Great! Thanks for the info, and hope the driver author can address the
> nits (forwarding now...)
>
> Jim
>
> On Wed, Nov 22, 2023, 15:05 d tbsky <tbskyd at gmail.com> wrote:
>
>> Jim Klimov via Nut-upsuser <nut-upsuser at alioth-lists.debian.net>
>> >
>> > Got an update for APC Modbus users: a new PR is waiting for real-life
>> testing for settable variables and instant commands support.
>> >
>> > https://github.com/networkupstools/nut/pull/2184
>> >
>> > As before, a custom build of libmodbus may be needed for USB support
>> (detailed in the earlier PR), but Serial and TCP may already be well served
>> by a distro near you!
>>
>> Hi:
>>    I got a new APC SRT3000XL and tested the new driver "apc_modbus".
>> the ups works fine with nut+apcupsd.  the new driver "apc_modbus" has
>> result below:
>>
>> 1.  upsrw can write the variable "battery.date". but the new value
>> will only show after restarting apc_modbus. and in my case the written
>> data will shift one day. eg the command "upsrw -s
>> battery.date=2023-09-13" will return "2023-09-12" later.
>> 2. the upscmd power-off related commands (like load.*, outlet.*,
>> shutdown.*) can not work. so it can not shutdown the ups. (I think
>> this is the most important feature which needs to be fixed)
>> 3. upscmd command works: beeper.mute, bypass.start, bypass.stop,
>> test.battery.start, test.battery.stop, test.panel.start
>> 4. I can't  attach any load so I can not test calibrate.start. but I
>> found the new driver seems missing an import item which apcupsd have:
>> "ups.test.result"
>>
>> below are some raw data:
>> > data read from  nut+apcupsd (for reference):
>> battery.charge: 99.0
>> battery.charge.low: 5
>> battery.date: 2023-11-21
>> battery.runtime: 57000.0
>> battery.runtime.low: 180
>> battery.voltage: 109.0
>> device.mfr: APC
>> device.model: Smart-UPS SRT    3000
>> device.serial: AS2032296523
>> device.type: ups
>> driver.debug: 0
>> driver.flag.allow_killpower: 0
>> driver.name: apcupsd-ups
>> driver.parameter.pollinterval: 10
>> driver.parameter.port: localhost
>> driver.parameter.synchronous: auto
>> driver.state: quiet
>> driver.version: 2.8.1
>> driver.version.internal: 0.71
>> input.frequency: 60.0
>> input.voltage: 224.7
>> output.current: 0.00
>> output.frequency: 60.0
>> output.voltage: 207.6
>> output.voltage.nominal: 208
>> power.percent: 0.0
>> ups.date: 2023-11-22
>> ups.delay.shutdown: 0
>> ups.delay.start: 0
>> ups.firmware: UPS 15.5
>> ups.firmware.aux: 00.5
>> ups.id: APC UPS
>> ups.load: 0.0
>> ups.mfr: APC
>> ups.mfr.date: 2020-08-10
>> ups.model: Smart-UPS SRT    3000
>> ups.power.nominal: 3000
>> ups.realpower.nominal: 2700.0
>> ups.serial: AS2032296523
>> ups.status: OL
>> ups.temperature: 27.0
>> ups.test.result: OK
>> ups.time: 17:24:25
>>
>> > data read from new driver "apc_modbus"
>> battery.charge: 99.00
>> battery.date: 2023-11-21
>> battery.date.maintenance: 2028-05-21
>> battery.runtime: 57425
>> battery.temperature: 29.00
>> battery.voltage: 108.69
>> device.mfr: American Power Conversion
>> device.model: Smart-UPS SRT    3000
>> device.serial: AS2032296523
>> device.type: ups
>> driver.debug: 0
>> driver.flag.allow_killpower: 0
>> driver.name: apc_modbus
>> driver.parameter.pollinterval: 10
>> driver.parameter.port: /dev/ttyS0
>> driver.parameter.synchronous: yes
>> driver.state: quiet
>> driver.version: 2.8.1
>> driver.version.internal: 0.10
>> experimental.output.energy: 7
>> input.transfer.high: 220
>> input.transfer.low: 184
>> input.transfer.reason: TestEnded
>> input.voltage: 224.77
>> outlet.group.0.delay.reboot: 8
>> outlet.group.0.delay.shutdown: 0
>> outlet.group.0.delay.start: 0
>> outlet.group.0.name: Unswitched Group
>> outlet.group.1.delay.reboot: 8
>> outlet.group.1.delay.shutdown: 90
>> outlet.group.1.delay.start: 0
>> outlet.group.1.name: Outlet Group 1
>> outlet.group.2.delay.reboot: 8
>> outlet.group.2.delay.shutdown: 90
>> outlet.group.2.delay.start: 0
>> outlet.group.2.name: Outlet Group 2
>> outlet.group.3.delay.reboot: 8
>> outlet.group.3.delay.shutdown: 90
>> outlet.group.3.delay.start: 0
>> outlet.group.3.name: Outlet Group 3
>> outlet.group.count: 2
>> output.current: 0.00
>> output.frequency: 60.00
>> output.voltage: 207.62
>> ups.delay.reboot: 8
>> ups.delay.shutdown: 0
>> ups.delay.start: 0
>> ups.efficiency: LoadTooLow
>> ups.firmware: UPS 15.5
>> ups.id: APC UPS
>> ups.load: 0.00
>> ups.mfr: American Power Conversion
>> ups.mfr.date: 2020-08-10
>> ups.model: Smart-UPS SRT    3000
>> ups.power: 0.00
>> ups.power.nominal: 3000
>> ups.realpower: 0.00
>> ups.realpower.nominal: 2700
>> ups.serial: AS2032296523
>> ups.status: OL
>> ups.timer.reboot: -1
>> ups.timer.shutdown: -1
>> ups.timer.start: -1
>>
>> >upsrw -l myups
>> [battery.date]
>> Battery change date
>> Type: NUMBER
>> Value: 2023-11-21
>>
>> [driver.debug]
>> Current debug verbosity level of the driver program
>> Type: NUMBER
>> Value: 0
>>
>> [driver.flag.allow_killpower]
>> Safety flip-switch to allow the driver daemon to send UPS shutdown
>> command (accessible via driver.killpower)
>> Type: NUMBER
>> Value: 0
>>
>> [input.transfer.high]
>> High voltage transfer point (V)
>> Type: NUMBER
>> Value: 220
>>
>> [input.transfer.low]
>> Low voltage transfer point (V)
>> Type: NUMBER
>> Value: 184
>>
>> [outlet.group.0.delay.reboot]
>> Description unavailable
>> Type: NUMBER
>> Value: 8
>>
>> [outlet.group.0.delay.shutdown]
>> Description unavailable
>> Type: NUMBER
>> Value: 0
>>
>> [outlet.group.0.delay.start]
>> Description unavailable
>> Type: NUMBER
>> Value: 0
>>
>> [outlet.group.0.name]
>> Description unavailable
>> Type: STRING
>> Maximum length: 16
>> Value: Unswitched Group
>>
>> [outlet.group.1.delay.reboot]
>> Description unavailable
>> Type: NUMBER
>> Value: 8
>>
>> [outlet.group.1.delay.shutdown]
>> Description unavailable
>> Type: NUMBER
>> Value: 90
>>
>> [outlet.group.1.delay.start]
>> Description unavailable
>> Type: NUMBER
>> Value: 0
>>
>> [outlet.group.1.name]
>> Description unavailable
>> Type: STRING
>> Maximum length: 16
>> Value: Outlet Group 1
>>
>> [outlet.group.2.delay.reboot]
>> Description unavailable
>> Type: NUMBER
>> Value: 8
>>
>> [outlet.group.2.delay.shutdown]
>> Description unavailable
>> Type: NUMBER
>> Value: 90
>>
>> [outlet.group.2.delay.start]
>> Description unavailable
>> Type: NUMBER
>> Value: 0
>>
>> [outlet.group.2.name]
>> Description unavailable
>> Type: STRING
>> Maximum length: 16
>> Value: Outlet Group 2
>>
>> [outlet.group.3.delay.reboot]
>> Description unavailable
>> Type: NUMBER
>> Value: 8
>>
>> [outlet.group.3.delay.shutdown]
>> Description unavailable
>> Type: NUMBER
>> Value: 90
>>
>> [outlet.group.3.delay.start]
>> Description unavailable
>> Type: NUMBER
>> Value: 0
>>
>> [outlet.group.3.name]
>> Description unavailable
>> Type: STRING
>> Maximum length: 16
>> Value: Outlet Group 3
>>
>> [ups.delay.reboot]
>> Interval to wait before rebooting the UPS (seconds)
>> Type: NUMBER
>> Value: 8
>>
>> [ups.delay.shutdown]
>> Interval to wait after shutdown with delay command (seconds)
>> Type: NUMBER
>> Value: 0
>>
>> [ups.delay.start]
>> Interval to wait before (re)starting the load (seconds)
>> Type: NUMBER
>> Value: 0
>>
>> [ups.id]
>> UPS system identifier
>> Type: STRING
>> Maximum length: 16
>> Value: APC UPS
>>
>>
>> >upscmd -l myups
>> Instant commands supported on UPS [ftups]:
>>
>> beeper.mute - Temporarily mute the UPS beeper
>> bypass.start - Put the UPS in bypass mode
>> bypass.stop - Take the UPS out of bypass mode
>> calibrate.start - Start run time calibration
>> calibrate.stop - Stop run time calibration
>> driver.killpower - Tell the driver daemon to initiate UPS shutdown;
>> should be unlocked with driver.flag.allow_killpower option or variable
>> setting
>> driver.reload - Reload running driver configuration from the file
>> system (only works for changes in some options)
>> driver.reload-or-error - Reload running driver configuration from the
>> file system (only works for changes in some options); return an error
>> if something changed and could not be applied live (so the caller can
>> restart it with new options)
>> driver.reload-or-exit - Reload running driver configuration from the
>> file system (only works for changes in some options); exit the running
>> driver if something changed and could not be applied live (so service
>> management framework can restart it with new options)
>> load.off - Turn off the load immediately
>> load.off.delay - Turn off the load with a delay (seconds)
>> load.on - Turn on the load immediately
>> load.on.delay - Turn on the load with a delay (seconds)
>> outlet.0.load.cycle - Description unavailable
>> outlet.0.load.off - Description unavailable
>> outlet.0.load.on - Description unavailable
>> outlet.0.shutdown.return - Description unavailable
>> outlet.1.load.cycle - Description unavailable
>> outlet.1.load.off - Turn off the load on outlet 1 immediately
>> outlet.1.load.on - Turn on the load on outlet 1 immediately
>> outlet.1.shutdown.return - Turn off the outlet 1 and return when power is
>> back
>> outlet.2.load.cycle - Description unavailable
>> outlet.2.load.off - Turn off the load on outlet 2 immediately
>> outlet.2.load.on - Turn on the load on outlet 2 immediately
>> outlet.2.shutdown.return - Turn off the outlet 2 and return when power is
>> back
>> outlet.3.load.cycle - Description unavailable
>> outlet.3.load.off - Description unavailable
>> outlet.3.load.on - Description unavailable
>> outlet.3.shutdown.return - Description unavailable
>> shutdown.reboot - Shut down the load briefly while rebooting the UPS
>> shutdown.reboot.graceful - Delay briefly then shut down the load while
>> rebooting the UPS
>> shutdown.return - Turn off the load and return when power is back
>> shutdown.stayoff - Turn off the load and remain off
>> test.battery.start - Start a battery test
>> test.battery.stop - Stop the battery test
>> test.panel.start - Start testing the UPS panel
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/nut-upsdev/attachments/20231124/78eb7826/attachment.htm>


More information about the Nut-upsdev mailing list