SisPM

Aus Wiki
Zur Navigation springen Zur Suche springen

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:


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
Achtung: Die Befehle der folgenden Box in eine Zeile schreiben. Nur der Übersichtlichkeit hier getrennt.
./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.