[Nut-upsdev] patch for old APC Smart-UPS 600

Konstantin 'Kastus' Shchuka kastus at epocrates.com
Fri Nov 28 03:16:52 UTC 2008


I am sorry to return to this old issue again. 

I discovered that my venerable SU-600 sometimes responds with other D codes
than I added to compat_tab already. I had to add 3 more codes there to
make it recognized properly by NUT.

Here is the diff:

--- nut-2.2.1.orig/drivers/apcsmart.h    2007-12-17 07:13:09.000000000 -0800
+++ nut-2.2.1/drivers/apcsmart.h  2008-11-27 18:56:36.292018933 -0800
@@ -258,6 +258,9 @@
        /* CS 350 */
        { "5.4.D",      "\1ABPQRSUYbdfgjmnx9",  0 },
        /* Smart-UPS 600 */
+       { "D9",         "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
+       { "D8",         "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
+       { "D7",         "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
        { "D6",         "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
        { "D5",         "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
        { "D4",         "789ABCEFGKLMNOPQRSUVWXYZ", 0 },

Thanks,
-Kastus

On Fri, Nov 24, 2006 at 08:43:09PM -0800, Konstantin 'Kastus' Shchuka wrote:
> Hi there,
> 
> I am using an old (really old) APC Smart-UPS 600. It worked fine
> under apcupsd but when I tried NUT it did not work.
> 
> The error I was getting was:
> 
> sudo /lib/nut/apcsmart -DDD /dev/ttyS1
> Network UPS Tools (version 2.0.4) - APC Smart protocol driver
>         Driver version 1.99.8, command table version 2.0
> debug level is '3'
> Attempting firmware lookup
> Firmware: [D4]
> Not found in table - trying normal method
> APC - Attempting to find command set
> APC - Parsing out command set
> Unable to split APC version string
> Bailing out
> 
> I tried running commands manually from minicom, and indeed, the UPS
> was returning D6, D5, or D4 in response to "b" command. I still do not
> understand the inconsistency, but I have observed these 3 strings at least.
> 
> I came up with the following patch to apcsmart.h:
> 
> --- nut-2.0.4.orig/drivers/apcsmart.h
> +++ nut-2.0.4/drivers/apcsmart.h
> @@ -254,6 +254,10 @@
>         /* APC600 */
>         { "6QD",        "79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
>         { "6TI",        "79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
> +       /* Smart-UPS 600 */
> +       { "D6",         "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
> +       { "D5",         "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
> +       { "D4",         "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
>         /* CS 350 */
>         { "5.4.D",      "\1ABPQRSUYbdfgjmnx9",  0 },
>  
> I understand that it is a clumsy way to make it work but it was the easiest
> for me.
> 
> I am not sure how many more old Smart-UPS 600 are still in use and if it's
> worth including into NUT.
> 
> Thanks,
> -- 
> Kastus Shchuka



More information about the Nut-upsdev mailing list