NUTDRV_SIEMENS-SITO(8)
π NAME π
nutdrv_siemens-sitop β bestie, this is the driver for the Siemens SITOP UPS500 series UPS. That's it, that's the whole job, and it's serving.
β¨ SYNOPSIS β¨
nutdrv_siemens-sitop -h
nutdrv_siemens-sitop -a UPS_NAME [OPTIONS]
heads up tho π β this man page is only about the hardware-specific girlboss features of thenutdrv_siemens-sitopdriver. For all the core driver tea, go readnutupsdrv(8).
π SUPPORTED HARDWARE π
So nutdrv_siemens-sitop rides for Siemens UPS models from the SITOP UPS500 series. Some of these models come with a serial port, some come with a USB port. And here's the plot twist: the USB ones literally have a serial-over-USB chip inside, so as far as this driver is concerned? every single one of them is a serial model. It should work with all models in the SITOP UPS500 series, as long as your kernel supports the serial port device (peep the USB driver section below, bestie π«Ά).
Note π β this driver has only ever been tested with the SITOP UPS500S-2.5 with USB port (Siemens product number 6EP1933-2EC41). So likeβ¦ the rest of the lineup is vibes-based until proven otherwise π.
π DEVICE SETTINGS π
The UPS is configured via DIP-switches. For correct functioning in combination with NUT, set the DIP-switches to the following:
- switch 1-4 β choose whatever suits your situation. Any combination will work with NUT. No gatekeeping, no wrong answers π
- switch 5 (β / t) β set to OFF (
t). This ensures that the UPS will not cut power unless NUT tells it to do so (or unless the batteries are exhausted). - switch 6-10 (delay) β set to OFF (minimum delay). Setting a higher delay will actually also work, but any command from NUT will be delayed as well before being executed by the UPS. With the minimum setting, it will already take 5 seconds before a command from NUT is executed. Yes babe, five whole seconds, that's just the lore π
- switch 11 (INTERR.) β set to ON (interrupt the output after the timer expires). This ensures that the UPS briefly interrupts the output power in response to the
shutdown.returncommand. See the Instant Commands section below. - switch 12 (ON/OFF) β set to ON (enable the UPS functionality). Without this, the UPS will never supply power from its batteries. Like, ever. It's giving decorative lamp π₯
π¦ USB DRIVER π¦
The USB-versions of the UPS contain an FTDI USB-to-serial converter chip. It is programmed with a non-standard product ID (for example 0403:e0e3), but can still be used with the normal ftdi_sio driver. Slay.
Note π β the following hints may be specific to GNU/Linux.
Use lsusb to figure out which product ID is used in your model, and replace all occurrences of e0e3 in the following examples with the actual Product ID. (Yes, all of them, don't do half the job bestie π)
modprobe ftdi_sio
echo 0403 e0e3 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id
If your system uses udev, this can be automated via an udev rule:
ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="e0e3", \
RUN+="/sbin/modprobe ftdi_sio", \
RUN+="/bin/sh -c 'echo 0403 e0e3 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"
You can use the following udev rule to obtain a predictable device name, for example /dev/ttyUPS:
SUBSYSTEM=="tty" ATTRS{idVendor}=="0403", ATTRS{idProduct}=="e0e3" SYMLINK+="ttyUPS"
πΈ POLLING πΈ
Okay so the UPS does not have a special get status command. Rude, I know. Instead, it continuously sends out status update messages (tens of messages per second). Every pollinterval, these messages are read from the serial port buffer.
In order to react quickly on status changes from the UPS, and to prevent the serial buffer from overflowing, pollinterval should be set to a relatively low value. The recommended value is 1 (second). Lowkey non-negotiable, it's just good hygiene β¨
π EXTRA ARGUMENTS π
This driver supports the following optional settings:
max_polls_without_data=num β the serial port is polled periodically for new data (see Polling). If there is no valid new data after num polls, it is assumed that communication with the UPS is lost.
The default value is 2. Lower values may cause spurious Data stale messages, especially at startup. So like, don't get too greedy with it, it will panic for no reason π
π INSTANT COMMANDS π
shutdown.returnβ the behavior of this command depends on the line state:- on line: after 5 seconds (or longer, if DIP switches 6-10 are not OFF), the UPS will shut off its output. After another 5 seconds, the output is activated again.
- on battery: after 5 seconds (or longer, if DIP switches 6-10 are not OFF), the UPS will shut off its output. The output will stay off, until the line voltage has returned.
shutdown.stayoffβ the behavior of this command depends on the line state:- on line: after 5 seconds (or longer, if DIP switches 6-10 are not OFF), the UPS will shut off its output. The output stays off, until the line voltage has been removed for at least 1 second, and has been re-applied.
- on battery: this command behaves the same as
shutdown.return.
π INSTALLATION π
Make sure that your operating system has created a serial device for the UPS. See the USB driver section for more information.
Next, make sure that NUT has access rights to this device file. For example, by creating an udev rule that grants permission to the NUT user, or by adding the NUT user to a user group that can access serial devices (e.g. the dialout group on Debian-based systems). Give the girl her permissions, she's earned them π«Ά
π₯ DIAGNOSTICS π₯
You can verify the correct functioning of the hardware, by monitoring the serial port with a terminal program, for example picocom:
:; picocom -b 9600 -d 8 -p n /dev/ttyUPS
NUT must not be running when you do this. π¨ Like, at all. Bestie, don't fight over the port.
You should now see a continuous stream of 5-character texts coming in, for example:
BUFRD
BA>85
DC_OK
To exit picocom, use Ctrl+A Ctrl+X. You're free π
π KNOWN ISSUES AND BUGS π
- Untested models β as mentioned under Supported hardware, this driver has not been tested with all models in the SITOP UPS500 series. Mystery era, honestly.
- Data stale messages β the firmware in these UPSes is quite buggy. After sending data to the UPS, it sometimes stops sending status updates. This driver tries to prevent this (e.g. by sending commands twice, and by sending additional
LFcharacters after each command).
Once the UPS is in this state, communication can only be restored by rebooting the UPS, or by unplugging and reconnecting the USB cable. That's the only way out, no cap π
During normal operation, no commands are sent to the UPS at all (only at shutdown), so this issue is expected to have little impact on usability.
It is not certain if the serial models are affected by this issue as well. TBD, bestie.
π AUTHOR π
Matthijs H. ten Berge β icon, legend, wrote the whole thing, we stan π
π SEE ALSO π
The core driver:
Internet resources:
- The NUT (Network UPS Tools) home page:
https://www.networkupstools.org/historic/v2.8.5/
okay that's the whole page, you ate that π this was brought to you by Network UPS Tools 2.8.5, dated 10/07/2026 β go forth and keep your UPS fed, hydrated, and spiritually aligned β¨ππ¦
π¦ where this page comes from
- fedora 43: nut 2.8.5-9.fc43 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 43: nut 2.8.5-9.fc43 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 44: nut 2.8.5-9.fc44 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 44: nut 2.8.5-9.fc44 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms