SisPM
Einleitung
Von der Firma Gembird gibt es eine Schaltbare Steckdosenleiste (Sis-PM / SIS-PMS : [1]), die mittels USB-Port angesteuert werden kann. Diese enthält 6 Steckdosen, wobei vier davon unabhängig voneinander via USB ein/ausgeschaltet werden können. Weiterhin enthält sie einen Überspannungsschutz für die angeschlossenen Geräte.
Zur Ansteuerung der Leiste liegt eine Windows-Software bei. Im Internet: gibt es unter: http://sispmctl.sourceforge.net die unter Open Source (GPL) stehende Linux-Software sispmctl, die im Quelltext verfügbar ist, und damit auch für die NSLU kompiliert werden kann.
Ideale Anwendungen:
- Automatisches → Backup, bei dem die Backup Festplatte automatisch eingeschaltet und nach dem Backup wieder ausgeschaltet wird.
- → Drucker für einen Ausdruck automatisch einschalten und nach einer gewissen Wartezeit wieder ausschalten
Voraussetzung:
- C-Compiler ist installiert
Installation
ipkg install libusb
mkdir -p /work cd /work wget http://downloads.sourceforge.net/sispmctl/sispmctl-2.7.tar.gz tar xzvf sispmctl-2.7.tar.gz
cd sispmctl-2.7 export CPPFLAGS=-I/opt/include
./configure --prefix=/opt --exec-prefix=/opt --oldincludedir=/opt/include --includedir=/opt/include --with-webdir=/opt/share/httpd/sispmctl/doc
make make install
Funktionstest
Test mit:
sispmctl -s
Statusinformationen zum gefundenen Gembird SIS-PM werden ausgegeben
sispmctl -o all
Alle Steckdosen werden eingeschaltet
sispmctl -f all
Alle Steckdosen aus
Benutzung
Einschalten von Steckdosen:
sispctl -o 1|2|3|4|all
Ausschalten von Steckdosen:
sispmctl -f 1|2|3|4|all
z.B.
sispmctl -o 3 (schaltet Steckdose 3 ein) sispmctl -f all (schaltet alle Steckdosen aus)
Optional: Webserver
Das Programm sispmctl enthält einen einfachen, integrierten Webserver, der standardmäßig auf dem Port 2638 auf Anfragen lauscht. Dieser Webserver ermöglicht es, Schaltbefehle per Webbrowser auszführen. Der Webserver bietet leider (noch) keinerlei Möglichkeit der Authorisierung. Aus diesem Grund sollte der Webserver nur aus dem lokalen LAN verwendet werden und nicht aus dem Internet, da jeder, der die URL kennt, anonsten die angeschlossenen Geräte ein- und ausschalten könnte.
Einrichtung
Achtung: Falls die Firewall eingerichtet wurde, muß der verwendete Port 2638 freigegeben werden, damit der Webserver erreichbar ist:
vi /opt/etc/init.d/S30iptables
Das Firewallscript enthält bereits eine (auskommentierte) Zeile für SIS-PM. Das Kommentarzeichen vor folgender Zeile entfernen:
# SIS-PM $IPT -A tcp_inbound -p TCP -s 0/0 --destination-port 2638 -j ACCEPT
Firewall und Fail2ban neustarten:
/opt/etc/init.d/S30iptables stop /opt/etc/init.d/S31fail2ban stop /opt/etc/init.d/S30iptables start /opt/etc/init.d/S31fail2ban start
Startscript
Wenn der Webserver mit dem Kommando 'sispmctl -l' gestartet wird, blockiert er das Putty-Fenster, und sobald dieses geschlossen wird, ist der SIS-PM Webserver nicht mehr erreichbar, da er mit beendet wird. Deshalb muß noch ein Startscript angelegt werden, das den Webserver automatisch beim Systemstart der NSLU mitstartet:
vi /opt/etc/init.d/S81sispm
Folgende Zeilen einfügen:
#!/bin/sh # # Start script für SIS-PM standalone webserver # case "$1" in start) if [ -z `pidof sispmctl` ]; then echo "Starting SIS-PM Webserver..." sispmctl -q -l & > /dev/null else echo "SIS-PM Webserver already running!" fi ;; stop) if [ -z `pidof sispmctl` ]; then echo "SIS-PM Webserver not running!" else echo "Stopping SIS-PM Webserver..." kill -9 `pidof sispmctl` > /dev/null fi ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac
Start des Webservers
Der Webserver wird mittels eben angelegtem Startscript gestartet:
/opt/etc/init.d/S81sispm
Check, ob der Webserver läuft:
pidof sispmctl
Es muss eine Zahl ausgegeben werden, die die Prozessnummer darstellt, unter der der Webserver läuft.
Funktionstest
Webbrowser öffnen und Adresse http://IP_der_NSLU:2638 eingeben. Es sollte die Webpage der SIS-PM angezeigt werden. Testweise einige Schaltbefehle durch anklicken der jeweiligen Schaltflächen ausführen.