[Nut-upsuser] Powercom issues in NUT (was: PowerCom BNT2000AT ups on nut 2.6.0 - second try)

Angela Williams angierfw at gmail.com
Wed May 18 11:57:00 UTC 2011


Hi All and Keven in particular!

On Tuesday 17 May 2011 at 18:38 Keven L. Ates :-

> Hmmm...
> I patched the "BNT-other" driver.  You may want to try using that as
> an alternative driver, since you can specify ALL the settings for your
> UPS.
> 
> But to address your problem, we can look at the system and its
> settings. The BNT type defaults as follows:
> 
> /*             Type */ "BNT",
> /*  Number of Bytes */ 16,
> /*     Flow Control */ {  "no_flow_control", no_flow_control },
> /* Validation Bytes */ { { 11U, 0x42U }, { 8U, 0U }, { 8U, 0U } },
> /* Power Kill Delay */ { { 1U, 30U }, 'y' },
> /*        Frequency */ {  0.00020803, 0.0 },
> /*           Load % */ {  1.4474,     0.0,   0.8594,  0.0 },
> /*        Battery % */ {  5.0000,  0.3268,  -825.00,  0.46511, 0 },
> /*          Voltage */ {  1.9216, -0.0977,  0.82857,  0.0000 },
> 
> You have:
> 
> driver = powercom
> type = BNT
> port = /dev/ttyS1
> numOfBytesFromUPS = 16
> methodOfFlowControl = no_flow_control
> validationSequence = {{11,0x42},{8,0},{8,0}}
> shutdownArguments = {{1,30},y}
> modelname = BNT2000APT
> serialnumber = 2233445566
> Desc = Computer Room Small UPS
> 
> So, the "numOfBytesFromUPS", "methodOfFlowControl",
> "validationSequence", and "shutdownArguments" are all defaults for
> "BNT" and can be commented out of the config file. You can also let
> NUT attempt to figure it all out by commenting out the "type" as well.
This I did with the settings below!

> However, I would simplify the config file as follows:
> >> > >  [APC1]
> >> > >  
> >> > >        driver = powercom
> >> > >        port = /dev/ttyS1
> >> > >        modelname = BNT2000APT
> >> > >        serialnumber = 2233445566
> >> > >        desc = Computer Room Small UPS

Result was worse with only 11 bytes!

> and then, if that doesn't give you what you need, add "type =
> BNT-other", repeat test, and add other elements as needed until you
> get what you want.
> Using "BNT-other", you can tweak all the settings to what you need for
> display. The defaults for "BNT-other" will choose between BNT, KIN,
> and IMP based on raw values.  Especially, if you have a 120 volt (US)
> model, use "BNT-other" or set "linevoltage = 240". I use KNutClient to
> check that my values are being reported accurately and tweak them
> until they are correct (assuming there isn't a problem with the UPS).
> An example "BNT-other" config:
> 
> [BNT1500AP]
>     driver = powercom
>     port = /dev/ttyS0
>     desc = "PowerCom BNT 1500 AP"
>     manufacturer = PowerCom
>     modelname = BNT1500AP
>     serialnumber = 13245678900
>     type = BNT-other
> #   linevoltage = 120
> #   numOfBytesFromUPS = 16
> #   methodOfFlowControl = no_flow_control
> #   validationSequence = {{8,0},{8,0},{8,0}}
> #   shutdownArguments = {{1,30},y}
> #   frequency = {0.00027778,0.0000}
> #   loadPercentage = {1.0000,0.0,1.0000,0.0}
> #   batteryPercentage = {1.0000,0.0000,0.0000,1.0000,0.0000}
> #   voltage = {2.0000,0.0000,2.0000,0.0000}

I just added the type as suggest of BNT-other and would you believe that it 
worked!

Here is the debug output!

gatekeeper nut #  /lib/nut/powercom -a APC1 -DDDDDDDDDD
Network UPS Tools - PowerCom protocol UPS driver 0.13 (2.6.0-r2984)
   0.000000     debug level is '10'
   0.001862     Flow control disable
   0.002045     Num of bytes requested for reading from UPS: 16
   0.147783     Num of bytes received from UPS: 16
Raw data from UPS:
 0 0x0f ( )
 1 0x64 (d)
 2 0x70 (p)
 3 0x70 (p)
 4 0x32 (2)
 5 0xff (ÿ)
 6 0x32 (2)
 7 0x00 ( )
 8 0x00 ( )
 9 0x04 ( )
10 0x00 ( )
11 0x4b (K)
12 0x98 ()
13 0x00 ( )
14 0x00 ( )
15 0x00 ( )
   0.147958     Detected: BNT-other-2000AP , 220V
   0.148042     Values of arguments:
   0.148065      manufacturer            : 'PowerCom'
   0.148085      model name              : 'BNT2000APT'
   0.148105      serial number           : '2233445566'
   0.148125      line voltage            : '220'
   0.148144      type                    : 'BNT-other'
   0.148164      number of bytes from UPS: '16'
   0.148183      method of flow control  : 'no_flow_control'
   0.148206      validation sequence: '{{8,0},{8,0},{8,0}}'
   0.148227      shutdown arguments: '{{1,30},y}'
   0.148264      frequency calculation coefficients: '{0.000278,0.000000}'
   0.148292      load percentage calculation coefficients: 
'{1.000000,0.000000,1.000000,0.000000}'
   0.148321      battery percentage calculation coefficients: 
'{1.000000,0.000000,0.000000,1.000000,0.000000}'
   0.148345      voltage calculation coefficients: '{2.000000,0.000000}'
   0.148387     send_to_all: SETINFO device.type "ups"
   0.148415     send_to_all: SETINFO driver.version "2.6.0-r2984"
   0.148442     send_to_all: SETINFO driver.version.internal "0.13"
   0.148469     send_to_all: SETINFO driver.name "powercom"
   0.148497     send_to_all: SETINFO ups.mfr "PowerCom"
   0.148523     send_to_all: SETINFO ups.model "BNT2000APT"
   0.148550     send_to_all: SETINFO ups.serial "2233445566"
   0.148576     send_to_all: SETINFO ups.model.type "BNT-other"
   0.148603     send_to_all: SETINFO input.voltage.nominal "220"
   0.148628     send_to_all: ADDCMD test.battery.start
   0.148650     send_to_all: ADDCMD shutdown.return
   0.148673     send_to_all: ADDCMD shutdown.stayoff
   0.148811     Num of bytes requested for reading from UPS: 16
   0.301784     Num of bytes received from UPS: 16
Raw data from UPS:
 0 0x0e ( )
 1 0x64 (d)
 2 0x70 (p)
 3 0x70 (p)
 4 0x32 (2)
 5 0xff (ÿ)
 6 0x32 (2)
 7 0x00 ( )
 8 0x00 ( )
 9 0x01 ( )
10 0x04 ( )
11 0x4b (K)
12 0x98 ()
13 0x00 ( )
14 0x00 ( )
15 0x00 ( )
   0.301948     input.frequency   (raw data): [raw: 50]
   0.301996     send_to_all: SETINFO input.frequency "72.00"
   0.302020     input.frequency: 72.00
   0.302040     output.frequency   (raw data): [raw: 50]
   0.302070     send_to_all: SETINFO output.frequency "72.00"
   0.302091     output.frequency: 72.00
   0.302110     ups.load  (raw data): [raw: 14]
   0.302140     send_to_all: SETINFO ups.load "14.0"
   0.302161     ups.load: 14.0
   0.302180     battery.charge (raw data): [raw: 100]
   0.302211     send_to_all: SETINFO battery.charge "100.0"
   0.302232     battery.charge: 100.0
   0.302251     input.voltage (raw data): [raw: 112]
   0.302281     send_to_all: SETINFO input.voltage "224.0"
   0.302303     input.voltage: 224.0
   0.302322     output.voltage (raw data): [raw: 112]
   0.302352     send_to_all: SETINFO output.voltage "224.0"
   0.302373     output.voltage: 224.0
   0.302403     send_to_all: SETINFO ups.status "OB TEST"
   0.302425     STATUS: OB TEST
   0.302445     send_to_all: DATAOK
   0.302723     dstate_init: sock /var/lib/nut/powercom-APC1 open on fd 5
   0.302833     send_to_all: SETINFO driver.parameter.pollinterval "2"
   0.302872     send_to_all: SETINFO device.mfr "PowerCom"
   0.302900     send_to_all: SETINFO device.model "BNT2000APT"
   0.302928     send_to_all: SETINFO device.serial "2233445566"


> I hope that clears up any problems,

It certainly seems to have! If you want me to try anything else give me a 
shout! I'm sure my customer will be happier that the firewall/front-end mail-
server will be shudown on a power outage! They are in a sightly rural 
industrial area. Power demands is at the supply capability level. But then 
that's quite common here in South Africa at the moment! We are expecting 
rolling blackouts again this winter until the new power stations come on line! 
2012 and onwards should see things improve!

Cheers
Ang!

-- 
Angela Williams
angierfw at gmail dot com
Linux/Networking Hacker
Blog http://angierfw.wordpress.com

Smile! Jesus Loves You!




More information about the Nut-upsuser mailing list