Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CLONE-OUTLET(8) 		   NUT Manual			 CLONE-OUTLET(8)

NAME
     clone-outlet - Clone an UPS, treating its outlet as if it were an UPS (mon-
     itoring only)

SYNOPSIS
     clone-outlet -h

     clone-outlet -a UPS_NAME [OPTIONS]

	 Note

	 This  man page only documents the specific features of the clone-outlet
	 driver. For information about the core driver, see nutupsdrv(8).

DESCRIPTION
     This driver, which sits on top of another driver's local UNIX  socket  file
     (or Windows named pipe), allows users to group clients to a particular out-
     let of a device and deal with this output as if it were a normal UPS.

     Unlike the clone(8) driver or dummy-ups(8) driver running in repeater mode,
     this  driver represents a read-only device for monitoring and shutdowns (it
     does not accept setting any values or sending instant commands  during  run
     time).

     Unlike  dummy-ups(8) generally, this driver does not require a running upsd
     data server nor use the networked NUT protocol to talk to the "real" driver
     (which may be remote in case of dummy-ups repeater mode).

     This driver does not create a completely new virtual device,  but	replaces
     or  extends some of the original readings reported by the "real" driver us-
     ing information from the specified outlet, and relays all other readings as
     they were.

     Remote clients like upsmon can MONITOR the device entry  presented  by  the
     data server with this driver (and the "real" driver) running and published.

     A	larger deployment with one or more lower-priority devices collected on a
     manageable outlet of an UPS or ePDU would likely see several drivers set up
     on the system actually capable of interactions with the UPS and running the
     NUT data server upsd(8) (and likely powered by another outlet):

     *	 a "real" driver talking to the UPS;

     *	 a clone  driver  talking  to  the  "real"  driver  and  issuing  outlet
	 power-off  (or power-cycle) based on relatively high thresholds for re-
	 maining battery charge and/or runtime of the actual  UPS  (or	explicit
	 instant  commands),  with  such operations first setting the respective
	 timers for the outlet on the "real" driver, and the  "FSD"  flag  among
	 states of the virtual UPS status;

     *	 possibly  a  clone-outlet  driver which is read-only and interprets the
	 outlet timer values as triggers for "FSD" or "OFF" flags reported among
	 states of the virtual UPS status.

     With this approach, the lower-priority systems  collected	on  such  outlet
     would  run the NUT upsmon(8) client to MONITOR the virtual UPS presented by
     the read-only clone-outlet driver and shut down as soon as the  "FSD"  flag
     is  raised (fairly early, based on charge and/or runtime thresholds config-
     ured for that driver) allowing the higher-priority devices (likely  includ-
     ing the NUT server) to enjoy a longer on-battery life.

     The  clone driver responsible for outlet power state changes would not nor-
     mally be monitored directly (e.g. to avoid unfortunate direct shutdown  re-
     quests from those clients), although it can be (instead of clone-outlet) in
     sufficiently trusted networks.

EXTRA ARGUMENTS
     This driver supports the following settings:

     port=drivername-devicename
	 Required.  The  standard  NUT driver port setting, here it provides the
	 name of the local Unix socket (or named Windows pipe) for connection to
	 the "real" driver.

     prefix=outlet.N
	 Required. Specify the outlet prefix as known on  the  original  driver.
	 The subset of data points reported by the "real" UPS driver for the ac-
	 tual device on this prefix would be reported as data points of the vir-
	 tual UPS maintained by this driver.

IMPLEMENTATION
     The port specification in the ups.conf(5) should reference the local driver
     socket (or Windows named pipe) that the "real" UPS driver is using. For ex-
     ample:

	   [realups]
	      driver = usbhid-ups
	      port = auto

	   [clone-outlet-1]
	      driver = clone-outlet
	      port = usbhid-ups-realups
	      prefix = outlet.1
	      desc = "Outlet 1 of the Real UPS"
	      [...]

     The driver internally interprets "real" driver's information about shutdown
     delay  and  shutdown  timer, whole UPS status and this outlet's status, and
     relays other data points as they were.

     If the outlet supports and reports a delayed  power-off,  the  virtual  UPS
     would issue an FSD via ups.status for its clients to shut down safely.

     In more detail:

     Given  the  (required)  prefix  value  such  as  outlet.1, the driver would
     specifically keep track of  <prefix>.status,  <prefix>.delay.shutdown,  and
     <prefix>.timer.shutdown  data points reported by the "real" driver. Numeric
     values of the *.shutdown readings would be noted by this  driver,	and  the
     boolean outlet status ("off" or otherwise) will be remembered. These values
     will also be re-published by this driver "as is".

     The  ups.status from the "real" driver would be remembered, but not re-pub-
     lished by this driver immediately. Instead, it would  be  published  during
     regular "update info" loop cycles either:

     *	 with  the "OFF" state added (if <prefix>.status indicates the outlet is
	 "off"),

     *	 or with  the  "FSD"  state  prepended	(if  <prefix>.timer.shutdown  is
	 non-negative and does not exceed the <prefix>.delay.shutdown value),

     *	 or "as is" if the outlet power state is "not critical".

IMPORTANT
     Unlike  a real UPS, you should not configure a upsmon primary mode for this
     driver. When a upsmon(8) primary sees the OB LB flags and tells the upsd(8)
     server it is OK to initiate the shutdown sequence, the  server  will  latch
     the  FSD  status,	and  it will not be possible to restart the systems con-
     nected without restarting the upsd server.

     This will be a problem if the power returns after the clone  UPS  initiated
     the shutdown sequence on its outlet, but returns before the real UPS begins
     shutting  down.  The  solution is in the clone driver, that will insert the
     FSD flag if needed without the help of an upsmon primary.

CAVEATS
     The clone UPS will follow the status on the real UPS driver. You  can  only
     make the clone UPS shutdown earlier than the real UPS driver, not later. If
     the  real UPS driver initiates a shutdown, the clone-outlet UPS driver will
     immediately follow.

     Be aware that the commands to shutdown/restart an outlet on  the  real  UPS
     drivers  are  not	affected, so if you tell the real UPS driver to shutdown
     the outlet of the clone UPS driver  immediately,  your  clients  will  lose
     power  without warning. A delayed outlet power-off should propagate as FSD,
     and the delay should be sufficiently long to allow for client shutdowns.

     If you use service management frameworks like systemd or SMF to manage  the
     dependencies between driver instances and other units, then you may have to
     set  up special dependencies (e.g. with systemd "drop-in" snippet files) to
     queue your clone drivers to start after the "real" device drivers.

AUTHOR
     Arjen de Korte <adkorte-guest@alioth.debian.org>

SEE ALSO
     upscmd(8), upsrw(8), ups.conf(5), clone(8), nutupsdrv(8)

   Dummy driver:
     The "repeater" mode of dummy-ups driver is in  some  ways	similar  to  the
     clone  and  clone-outlet drivers, by relaying information from a locally or
     remotely running "real" device driver (and NUT data server).

     dummy-ups(8)

   Internet Resources:
     The NUT (Network UPS Tools) home page: https://www.networkupstools.org/

Network UPS Tools 2.8.5.	   08/04/2026			 CLONE-OUTLET(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=clone-outlet&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help