[Nut-upsdev] MGE NMC and NutShutdownModule (and other stuff)

Marco Chiappero marco at absence.it
Tue Nov 3 12:14:56 UTC 2009


Arjen de Korte ha scritto:
> Citeren Marco Chiappero <marco at absence.it>:
> We will have an NSM client in NUT, if not only to limit the polling rate 
> (which has bothered me for quite a while). Currently, at a mere 5 second 
> polling rate, the CPU load for the netxml-ups driver is almost an order 
> of magnitude that of the usbhid-ups driver (monitoring the same UPS). 
> The alarms really help us to determine when to poll the driver, so even 
> if we wouldn't parse the alarm messages (I don't think that would make 
> sense though), it would already be meaningful.

Uhm are you saying we should subscribe even the netxml-ups driver to 
lower NUT load? Maybe there's something I don't know yet about the 
extrafd... but, shouldn't we make better to include the nsm code in the 
netxml-ups driver/mge subdriver?
However, only relevant data is sent over the NSM connection, if, for 
example, "UPS.PowerConverter.Output.ActivePower" changes we're not going 
to know it through alarm messages. But, at worst, it can suffice to 
update that data every 60 seconds, which is reasonable. Is it right? Is 
it what you meant?

> But I don't think this is too hard to implement.

I thought the NMC was using only udp broadcast messages but I'm having 
some sniffing time and I discovered that, shutting down outlet #2, much 
information is forwarded even to a host attached on the main outlet. 
Everything but "System.Outlet[3].RunTimeToShutdown" data (resulting in 
two empty messages for the connected client). Interesting!

[TCP]
<ALARM level="1" object="UPS.PowerSummary.PercentLoad" value="39" 
date="2009/11/03-11:59:46" messageID="5PAEI7">  </ALARM>
<ALARM></ALARM>
<ALARM></ALARM>
<ALARM level="1" object="UPS.OutletSystem.Outlet[3].DelayBeforeShutdown" 
value="125" date="2009/11/03-11:59:56" messageID="6ZJJFK">  </ALARM>

[UDP]
<ALARM level="1" object="UPS.PowerSummary.PercentLoad" value="39" 
date="2009/11/03-11:59:46" sessionID="53950" messageCount="22" 
messageID="7KIWMV">  </ALARM>
<ALARM level="3" object="System.Outlet[3].RunTimeToShutdown" value="13" 
date="2009/11/03-11:59:50" sessionID="53950" messageCount="23" 
messageID="1P31YU"> Group 2 system shutdown is activated </ALARM>
<ALARM level="3" object="System.Outlet[3].RunTimeToShutdown" value="0" 
date="2009/11/03-11:59:52" sessionID="53950" messageCount="24" 
messageID="59XJRJ"> Group 2 system shutdown is activated </ALARM>
<ALARM level="1" object="UPS.OutletSystem.Outlet[3].DelayBeforeShutdown" 
value="125" date="2009/11/03-11:59:56" sessionID="53950" 
messageCount="25" messageID="H5RPLA">  </ALARM>


Have to investigate a bit more to be sure that 
"UPS.PowerSummary.PresentStatus.BelowRemainingCapacityLimit" object is a 
host specific data. Then we should have a quite clear picture of who is 
reading what. Well, for a simple UPS at least...

> We know when the timers 
> are running (through the alarms) and we also know the shutdown duration 
> requested on the outputs, so it shouldn't be too problematic to insert a 
> FSD flag. I just wish the NMC would have used the ShutdownImminent flag 
> that is supposed to tell this, but for some mysterious reason it doesn't 
> seem to be used by the NMC.

Yes and I agree. However, a question: if we use the FSD flag, in a 
redundant configuration, and that UPS was not really necessary for the 
system to live, doesn't it trigger the system shutdown in any case?


Best Regards,
Marco




More information about the Nut-upsdev mailing list