SiS-PM (Silver Shield PM) Control for Linux 3.0
(Silver Shield PM Control for Linux 3.0, (C) 2004-2011 Mondrian Nuessle)
To the sourceforge.net pages.
SIS-PM Control for Linux aka sispmctl is an
application enabling the use of the GEMBIRD (m)SiS-PM
device family under Linux.
The SiS-PM is an itelligent advanced surge protector with
features: 4 sockets are manageable from the PC via USB port (GEMBIRD LTD).
The mSiS-PM is an itelligent advanced surge protector with
features: 1 socket is manageable from the PC via USB port (GEMBIRD LTD).
The software works on many different platforms. I would be glad to here
from you, on what platforms you are using this software. Also, send me
any Howto's etc on how you got it to work on your router box etc.
This software comes with ABSOLUTELY NO WARRANTY; for details see the LICENCE
file. This is
free software, and you are
welcome to redistribute it
under certain conditions; see the LICENCE
Thanks go out to Gembird
kind support, the libusb
project, the USB
snoopy team, Andreas Neuper and the other contributors.
- version 3.0 released
- version 2.7 released
- the german computer magazine c't published a review of the SIS-PM in 06/08. They also put a link to this project up http://www.heise.de/ct/08/06/links/079.shtml :-)
- version 2.2 released on sourceforge
- moved to subversion on sourceforge
- version 2.1 released on sourceforge
- Started CVS repository on sourceforge.net
- Started to move the project to Sourceforge.net. First version of the website available.
- Andreas Neuper contributed a lot of new stuff,
available in the current 2.1 version. Check it out!
- Wolfram Schlich added sispm_ctl to the Gentoo/Portage
tree. It is available there under sys-power/sispm_ctl
- Uwe Herman added sispm_ctl to the Debian/Unstable tree.
- A lot of people pointed bugs out to me, I hope I fixed them all :-)
|| Initial Release
small error in configure script, relaxed dependency for libusb to
include version >=0.1.5, added new command line arguments -q and
-v,added Troubleshooting section,added sispm_http from Marius Konitzer
||Fixed type of variable c. Thanks to Michael
||new version with new functionality: multiple
devices, built-in web
interface, new options, man-page. Renamed to pmctl. Courtesy of Andreas
||fixed several install/configure/make
problems, cleaned up code
||added better control for the webinterface including
leaving it out of a compiled version, limiting it to a single network
interface, small other fixes
- version 2.3a, 23 Mar 2006
|added experimental support for the mSiS-PM device, which
is a one socket version of the SiS-PM. If anybody has such a
device, please try the software, and contact me!
- version 2.4a, 17 Aug 2006
|dde fixed several bugs (thanks to Marius Konitzer);
patch to support Solaris 10 (thanks to Casper Dik); several other
fixes; added Python GUI script (see directory extra and there the README)
- version 2.4b, 30 Oct 2006
|small fix, return value of the application
||mSIS is supported, usb_close fd bug fix
||added support for devices with device of 0xfd13
||added power supply status, first serial implementation, sorting of devs, bugfixes
|| added timer functionality, added gemplug script (see extras directory), added -D option to select device by serial number, several bugfixes and cleanups
Supported Devices & identifying devices
has produced a whole family of manageable surge protectors. The
following table simmarizes the devices that are known to work with this
|SIS-PM Silver Shield aka Revolt Intelliplug...
||original 4 socket, USB manageable
|SIS-PMS Silver Shield
||newer version (?) 4 socket, USB manageable
||one socket, USB manageable
||one socket, USB manageable
So you may find this device sold
different names. You can identify it, though, without opening the case
by issuing the followin commands:
~ $ lsusb
Bus 001 Device 002: ID
Cypress Semiconductor Corp.
Of course, the Bus and Device number will be different, depending
on your setup. Different devices have different IDs, see table above.
Obtaining a device
In Germany you used to be able to buy a device from Pearl
(PE-3057-908, ~30 Euros) sold under the name
Today you can grab one for example from www.reichelt.de or www.conrad.com under the name Gembird SIS-PM.
In Denmark you can grab one for example from Elektronik Lavpris.
Anyone out there knows about other countries?
Generally all operating systems with support of libusb and that are POSIX compatible should work.
There have been reports that siscpmctl was successfully compiled and worked under:
- Gentoo Linux - This software is available a a Gentoo/Portage package called sispmctl (courtesy Wolfram Schlich)
Unstable - This software is also available from the Debian unstable
tree, probably also for many derived distributions (courtesy Uwe
- SuSE Linux (all recent versions)
- Solaris 10
- MacOS X 10.4 and MacOS X 10.5
you have gotten it to work on your box, and you use an OS/distro not
mentioned here, feel free to send me a mail with your experience!
is mostly processor architecture agnostic. All 32-bit/64-bit related
bugs etc should be fixed by now. sispmctl has been reported to run on
- PowerPC G5 (iMac G5)
- several embedded MIPS, ARM etc
Several people mentioned they are using it on there broadband router
boxes at home, especially since a package is available for OpenWRT.
The following routers and NAS boxes have been reported to me to definetely work:
- ASUS WL500GP (running OpenWRT)
- Linksys NSLU2 (running Debian on ARM)
would really like to get an overview of boxes sispmctl is used on, so
please send me an email, if your box is not mentioned here (yet).
Reportedly sispmctl is used to control a host of different devices including
- Development machines for kernel level and BIOS level developments
- NAS devices
- flatbed document-scanner
- DLT tapeunit
- even fish-tank related stuff...
If you have software that uses sispm_ctl, mail me and I add it to the list below:
- SuperKaramba design to use your SiS-PM from the desktop: http://www.hopfenwiesen.de/projekte.php(only in German)
- dbus integration and GNOME applet for that. This is
currently targeted vs. Ubunutu 7.10 (Gutsy Gibbon), but hoperfully will
evolve also for other distros. See here for more info and download here.
- gemplug a wrapper script for sispmctl that is much more
comfortable. It allows saving and recalling of outlet
configuration, at controlled jobs and lots more. The gemplug script
comes with man page documentation, an install script and is available
in the extras directory of the sispmctl svn repository. Gemplug also
comes with udev rules to enable simple acess to the device as
- a python module to access the sispm directly form your
python scripts. This module is contributed by Mikael Lindqvist and is
available in the extras directory within the sispmctl directory.
Download & Installation:
In short: Download latest sispm_ctl-XX.tar.gz
(~156kB) from the sourceforge.net pages, unpack & follow the README
file or see the release notes.
You need libusb-0.15 or newer installed on your system (if you have an
older version of libusb it MIGHT work, you'll have to
tweak configure.in though and call scripts/bootstrap. Nevermind if this
is just glibberish for you :-)).
sis_pmctl is only available as sourcecode distribution. To install on
your system run:
Note: The compiled
application is named sispmctl since 2.0 without the underscore!
This installs the applicationsis pmctl in
/usr/local/bin. If you want to install the
application to a different directory,
call ./configure --prefix=/your/preferred/dir.
The web-interface skins are installed under
$prefix/httpd/sispm_ctl/skin?; the default skin is pre-selected with
the doc symbolic link in the $prefix/httpd/sispm_ctl directory.
The sispmctl utility is called from the command line. The
documentation is from the man-page of sispmctl (included in distribution):
Somewhat outdated at the moment...
sispmctl [ -u <path> ] [ -p <#port>
sispmctl [ -q ] [ -n ] [ -d 1... ] -b <on|off>
sispmctl [ -q ] [ -n ] [ -d 1... ] < -o | -f | -g >
sispmctl is a tool to switch the USB controlled outlets of
Silver Shield PM. It is known by many names, e.g. Revolt
It is coded in C and does use the usb specific library
(LibUSB). This allows you a portable and fast solution.
-h Print usage information
-s Scan all universal serial
buses for devices with the ID 04B4:FD11.
-l stay listening on network
port for http protocol.
-p IP network port (default:
2638) for listener. There is no authentication implemented yet.
-u give the directory path
where pages lay,
that are served (default: /usr/local/httpd/pmctl ). The Web
component is completely ignored for security reasons.
-b switch the buzzer on and off
(I was not able to test it, mine does not hat it)
-o switch the named outlet to
-f switch the named outlet to
-g show the status of the named
-d Choose not the first but the
named one in the sequence of detected devices (see scan option)
-n do not print "ON" and "OFF",
but "1" and "0" instead
-q do neither print
explanations nor disclaimers except it is requested
-v print version &
The sispmctl program provides a web interface when started with
-l option. No additional http server is needed. Each selected
device is blocked by pmctl while running.
After installation, the first
three web-interfaces is
default location of the
is /usr/local/httpd/sispm_ctl/doc which is a symbolic link
The http capabilities of pmctl are limited. Technically
only the first line of each http request is parsed. The
terminating path component, i.e. file name, is looked up in
repository directory. If present the file is parsed and in
absence of control sequences sent as is. The files must
the http header portion.
Control sequences start and end with double dollar
`$$'. They consist of a command portion separated by a
mark `?' from alternative outputs which are separated by the first
colon `:'. The command portion is a token followed by an
number that references the outlet, e.g.
$$command(1)?positive:negative$$ while command is one of status
toggle, off , on . I strongly recommend to avoid the
on/off/toggle commands in pages that may be reloaded. Best is
redirect to other pages that only include status requests.
Switch off the first outlet of the first SiS-PM and the
third outlet of the second SiS-PM:
$ sispmctl -f 1 -d 1 -f 3
Print the status of the forth outlet as zero or one:
$ sispmctl -nqg 4
Run pmctl on the second device as a web-server:
$ sispmctl -d 1 -l
You can connect to it from the same machine by pointing to
http://localhost:2638 with your webbrowser
- My kernel supports USB, I loaded all the correct
modules but when
I plug in the device,
it does not appear in the output of lsusb,
does not work,
the following output is added to the system log (output dmesg):
usb 1-2: new low speed USB device using address 2
usb 1-2: Product: Gembird Silver Shield PM
usb 1-2: Manufacturer: Gembird Electronics
drivers/usb/input/hid-core.c: couldn't find an input interrupt endpoint
hid: probe of 1-2:1.0 failed with error -5
This may happen if you have not mounted usbfs.
Try "mount usbfs"
This could possibly fix your
(Thanks to Martin Koniczek for pointing this out to me).
Per default, only root is allowed to use devices directly, therefor the SiS-PM
also only works as root. If you use a Linux distribution that is using the
ressource manager package (resmgrd), you can add a line to /etc/resmgr.conf.
The following line is an example for SuSE 10.0. It MAY be different on your system.
add usb:vendor=0x04b4,product=0xfd11 usb
This adds the SiS-PM device to the USB class which can be used by logged in users on SuSE 10.0.
If you are using a mSiS-PM device you need to use the product ID of 0xFD10 or 0xFD12 (dependant
on hardware revision, see output of /sbin/lsusb -v).
Actually this solution works for all kinds of USB devices, that you want to directly
access as normal user, i.e. your USB handheld, USB scanner etc.
Instead of identifying the device by vendor and product ID, you can also use the
Bus/device addressing scheme (see also man resmgr.conf)!
Older Releases are also available from the sourceforge.net release section of the project. See Releases. In the following list, these releases are described shortly:
Usage of old vesions:
1..4 - turn on the specified
all - turn on all
1..4 - turn off specified sockets
all - turn off all sockets
1..4 - query status of socket (1 if on, 0
all - query and print status of
on - buzzer on
off - buzzer off
Option -q disables output from following commands specified on the
Option -v prints detailed version and licence information
sisspm_ctl returns 0 on success, 1 on error and 2 if no SIS-PM or
compatible device could be found.
- Bash script to use webinterface for 1.x versions (not necessary
wrote a bash script that enables control of the USB socket via a
You need to download sispm_http-0.1.tar.bz2.
tar xjvf sispm_http-0.1.tar.bz2
Follow the README file to install it.
If you are using a Linux distro that uses xinetd, the following file sispm can be
copied into /etc/xinetd.d/ to configure the xinetd to work with
Thanks to Marius Konitzer for contributing this script. The original
download can be found at http://marko82.de/prog_sispm_http.php.
Post questions, bugreports, remarks the available forum
other information send mail to
nuessle AT uni-mannheim.de
Last modified: 30th March 2011