<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">My view is that this rests at the upsmon side. Each monitor would look at the status and decide to act as per its own configuration. <br><br><div dir="ltr"><span style="background-color: rgba(255, 255, 255, 0);">Sent from my iPhone with  iTypos</span></div><div dir="ltr"><br><blockquote type="cite">On Aug 6, 2023, at 5:25 PM, Jim Klimov <jimklimov+nut@gmail.com> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div dir="ltr"><div>From my understanding, alone with other NUT behaviors it would not.</div><div><br></div><div>Even if NUT drivers already do (or are changed to) react to the actual charge/runtime going below this setting to fabricate an LB status, this as a driver setting/override would have immediate effect on all clients like `upsmon` watching the device status on their shared data server. This simultaneously requested shutdown *might* then be handled differently by shutdown procedures on different clients (e.g. a NAS somehow waiting until its clients disconnect), but such solutions are not part of NUT directly at the moment.</div><div><br></div><div>If such a feature is indeed missing currently, engineering it would be a useful addition as it is something people sort-of-expect NUT to be capable of.</div><div><br></div><div>But for different clients to get the shutdown signal at different times might need something different in e.g. `upsmon`.</div><div><br></div><div>One idea that comes to mind though would be to use dummy-ups (or clone*) drivers as relays, specifically to inject custom overrides (if/when that mechanism works to generate LB) over "real device" data. So your server could have a "realups" section as well as some dummies proxying its other info and overridden to have LBs at say 90%, 50% and 30% marks. And different clients would monitor different such constructs.<br></div><div><br></div><div>Jim</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Aug 6, 2023 at 7:59 PM Strahil Nikolov <<a href="mailto:hunter86_bg@yahoo.com">hunter86_bg@yahoo.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>

Hi Jim,<div><br></div><div>I was thinking about setting different values for each device , so the first system has higher values and shutdowns earlier:</div><div><pre style="font-family:"Courier New",Courier,monospace;font-size:inherit;color:navy;padding:0px;margin-top:0px;margin-bottom:0px;white-space:pre-wrap"><span style="font-size:inherit">override.battery.charge.low</span></pre><pre style="font-family:"Courier New",Courier,monospace;font-size:inherit;color:navy;padding:0px;margin-top:0px;margin-bottom:0px;white-space:pre-wrap"><code style="font-family:"Courier New",Courier,monospace;font-size:inherit;padding:0px;margin:0px">override.battery.runtime.low</code></pre><pre style="font-family:"Courier New",Courier,monospace;font-size:inherit;color:navy;padding:0px;margin-top:0px;margin-bottom:0px;white-space:pre-wrap"><br></pre></div><div>Won’t it work ?</div><div><br></div><div>Best Regards,</div><div>Strahil Nikolov </div><div><p style="font-size:15px;color:rgb(113,95,250);padding-top:15px;margin-top:0px">On Sunday, August 6, 2023, 7:41 PM, Jim Klimov via Nut-upsdev <<a href="mailto:nut-upsdev@alioth-lists.debian.net" target="_blank">nut-upsdev@alioth-lists.debian.net</a>> wrote:</p><blockquote><div id="m_112343851927732106yiv1056910311"><div dir="ltr"><div>Yeah, I have no lack of imagination about scenarios where that can be useful - just was surprised to see no apparent "here's how you do it" sort of man page or something,</div><div><br></div><div>Although technically the shutdown scenario like yours, where a NAS server only is told to go down - or actually does so (which is substantially different and can be implemented elsewhere) - after its consumers go down, can be implemented outside of NUT.</div><div><br></div><div>For your example, one can have the NAS's `SHUTDOWNCMD` script wait until `upsc` reports some critical remaining time/charge or until all known protocol clients (NFS, CIFS, iSCSI, ...) have disconnected - e.g. check whether `netstat -an | grep ESTABLISHED | grep PORTNUMS` port count went to zero (assuming TCP connections). In this case, some same event trigger on the NUT `primary` server (like "on battery for over 1 minute per upssched") would tell all clients to shut down, and the NAS client would by such script wait until the VM server goes down. Although in this 1:1 case it would be beneficial for NAS to be the primary server (otherwise the other primary can eventually time out and take action to go down itself and command the UPS to power-off). Whatever the programmatic case, in the end this is limited by how long the UPS holds up :)<br></div><div><br></div><div>Jim</div><div><br></div></div><br><div><div dir="ltr">On Sun, Aug 6, 2023 at 6:05 PM Arnaldo Viegas de Lima <<a rel="nofollow noopener noreferrer" href="mailto:arnaldo@viegasdelima.com" target="_blank">arnaldo@viegasdelima.com</a>> wrote:<br></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>I think it can be useful in a scenario like:<div><br></div><div>- Large UPS, that powers 2 hosts: one is VMServer with just a small boot driver and the second is a NAS with all the disks for the first server. </div><div>- UPS is connected by USB to another host (such as a small Raspberry PI), acting as the NUT primary.</div><div>- Both machines served by UPS are NUT secondaries.</div><div>- The NAS box can only shutdown one the VMware is fully stopped to avoid corruption at several levels.</div><div><br></div><div>If the secondaries can define their one parameters for initiating the shutdown, one can decide something like:</div><div><br></div><div>- VMware will shutdown at 20% battery left OR 15min of runtime left</div><div>- NAS will shutdown at 10% ou 8min left</div><div><br></div><div>Another approach is to attempt to define a way to sync secondaries… but that’s much more complex.</div><div><br></div><div>Arnaldo.  <br><div><br><blockquote type="cite"><div>On Aug 6, 2023, at 12:39 PM, Jim Klimov via Nut-upsuser <<a rel="nofollow noopener noreferrer" href="mailto:nut-upsuser@alioth-lists.debian.net" target="_blank">nut-upsuser@alioth-lists.debian.net</a>> wrote:</div><br><div><div dir="ltr">Hello all again,<br><div><br>  While looking at <a rel="nofollow noopener noreferrer" href="https://github.com/networkupstools/nut/issues/2014" target="_blank">https://github.com/networkupstools/nut/issues/2014</a> I understood that I am</div><div>not sure if currently NUT has a standard way of triggering a shutdown based on remaining charge</div><div>or runtime, if a device/driver lacks a `battery.charge.low` setting but has readings for the values</div><div>themselves.</div><div><br></div><div>  Such an ability rings a bell to me, but maybe it is specific to some drivers and is not</div><div>something ubiquitous - as being in the driver (and/or upsmon/upssched?) core codebase?</div><div><br></div><div>  So there are a few questions stemming from this:</div><div>* Can a user currently (on NUT 2.8.0) set up battery percentage based shutdowns</div><div>  when the "low" variable is missing in the driver/device? (Suggestions in the ticket</div><div>  linked above are welcome)<br></div><div>* Does it make sense to add something like this (if missing) to be consistent on</div><div>  un-capable devices? Or is it already there but too buried in code or docs?</div><div>* Would anyone step up to make this setup easy for newcomers (even if it means "just"<br></div><div>  finding a chapter in the docs/FAQ and making it better exposed, perhaps in the Wiki),</div><div>  or more so if design and coding are due? ;)</div><div><br></div><div>Jim</div><div><br></div></div>
_______________________________________________<br>Nut-upsuser mailing list<br><a rel="nofollow noopener noreferrer" href="mailto:Nut-upsuser@alioth-lists.debian.net" target="_blank">Nut-upsuser@alioth-lists.debian.net</a><br><a rel="nofollow noopener noreferrer" href="https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser" target="_blank">https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser</a><br></div></blockquote></div><br></div></div></blockquote></div>
</div>_______________________________________________<br>Nut-upsdev mailing list<br><a href="mailto:Nut-upsdev@alioth-lists.debian.net" target="_blank">Nut-upsdev@alioth-lists.debian.net</a><br><a href="https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsdev" target="_blank">https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsdev</a><br><blockquote></blockquote></blockquote></div>

</div></blockquote></div>
</div></blockquote></body></html>