Debian SisPM: Unterschied zwischen den Versionen
Erich (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Erich (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 62: | Zeile 62: | ||
Z.B. User root und tux der Gruppe sispm zufügen, sodass diese Zugriff auf die Steckdosenleiste haben. | Z.B. User root und tux der Gruppe sispm zufügen, sodass diese Zugriff auf die Steckdosenleiste haben. | ||
adduser root sispm | adduser root sispm | ||
adduser | adduser sispm sispm | ||
UDEV-Rule anlegen: | UDEV-Rule anlegen: |
Version vom 2. September 2009, 19:23 Uhr
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 sowohl im Quelltext, als auch als Debian Paket verfügbar ist. Da der Version des Debian-Paketes das Web-Interface fehlt, wird im folgenden sispmctl selbst kompiliert und installiert.
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
apt-get install libusb-dev adduser sudo
mkdir -p /usr/local/src cd /usr/local/src wget http://downloads.sourceforge.net/sispmctl/sispmctl-2.7.tar.gz tar xzvf sispmctl-2.7.tar.gz
cd sispmctl-2.7 ./configure 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)
Falls mehrere Gembird Devices am Rechner hängen, kann die Devicenummer (1,2,..) mittels Option -d angegeben werden:
sispmctl -d 1-o all (schaltet alle Steckdosen des ersten Device ein) sispmctl -d 3 -f all (schaltet alle Steckdosen von Device 3 aus)
Optional: SIS PM mit User Rechten
Bisher ist lediglich der Superuser root berechtigt, die Steckdose zu schalten. Falls die Steckdosenleiste auch von "normalen" Usern (die im nächsten Abschnitt beschriebene Weboberfläche läuft auch mit Userrechten, anstatt mit root-Rechten) bedient werden soll, müssen noch einige Userrechte angepasst werden.
Anlegen eines Users und zugehöriger Gruppe sispm:
useradd --system --user-group --shell /bin/false sispm
User der Gruppe sispm zufügen: Z.B. User root und tux der Gruppe sispm zufügen, sodass diese Zugriff auf die Steckdosenleiste haben.
adduser root sispm adduser sispm sispm
UDEV-Rule anlegen:
vi /etc/udev/rules.d/74-sispmctl.rules
Folgendes einfügen:
### SiS-PM Gembirds (Gembird Silver Shield power outlets controlled by sispmctl): SUBSYSTEMS=="usb", ATTRS{idVendor}=="04b4", ATTRS{idProduct}=="fd1[0-3]", GROUP="sispm", MODE="0660"
Damit die UDev-Regeln angewendet werden, die Steckdosenleiste kurz vom USB-Port trennen und wieder anstecken.
Check des Zugriffs mit Userrechten (User tux):
sudo -u tux sispmctl -s
Es muß die Serialnummer der Steckdosenleiste ausgegeben werden. Falls "USB set configuration could not set config 1: Operation not permitted" ausgegeben wird ist bei der Konfiguration etwas schief gegangen.
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. Voraussetzung:
- SIS PM wurde konfiguriert, um mit Userrechten bedient zu werden (siehe vorhergehender Abschnitt).
Anpassung der Zuordnung der Geräte zu den 4 Steckdosen
Standardmäßig sind die 4 Buttons in der Weboberfläche durchnummeriert (Socket 1 bis Socket 4). Durch editieren des HTML-Files können aber auch die angeschlossenen Geräte ausgegeben werden, was die Zuordnung erheblich vereinfacht.
vi /usr/local/share/httpd/sispmctl/doc/index.html
Die Zeilen mit Socket 1 bis Socket 4:
Socket 1 Socket 2 Socket 3 Socket 4
durch die gewünschte Bezeichnung in der Weboberfläche ersetzen, z.B.
Laserdrucker Scanner unbenutzt Festplatte
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 mitstartet:
vi /etc/init.d/sispm_web
Folgende Zeilen einfügen:
#!/bin/sh START="yes" DAEMON=/usr/bin/sispmctl OPTIONS="-l" PIDFILE=/var/run/sispm.pid USER="sispm" GROUP="sispm" if [ "$START" != "yes" ]; then echo "To enable Webinterface edit $1 and set START=yes" return 0 fi # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 start() { echo -n "Starting SIS-PM Webinterface..." #Check, if running start-stop-daemon --chuid $USER --group $GROUP --background --make-pidfile --pidfile $PIDFILE \ --start --test --exec $DAEMON -- $OPTIONS > /dev/null if [ "$?" -ne 0 ]; then echo " [already running]" return 1 fi #Start start-stop-daemon --chuid $USER --group $GROUP --background --make-pidfile --pidfile $PIDFILE \ --start --exec $DAEMON -- $OPTIONS > /dev/null if [ "$?" -ne 0 ]; then echo " [failed]" return 1 fi echo " [ok]" return 0 } stop() { echo -n "Stopping SIS-PM Webinterface..." start-stop-daemon --chuid $USER --group $GROUP --pidfile $PIDFILE --stop --exec $DAEMON if [ "$?" -eq 2 ]; then echo " [failed]" return 2 fi if [ "$?" -eq 1 ]; then echo " [not running]" return 1 fi rm -f $PIDFILE echo " [ok]" return 0 }
Start des Webservers
Der Webserver wird mittels eben angelegtem Startscript gestartet:
/etc/init.d/sispm_web start
Funktionstest
Webbrowser öffnen und Adresse http://IP_des_Servers:2638 eingeben. Es sollte die Webpage der SIS-PM angezeigt werden. Testweise einige Schaltbefehle durch anklicken der jeweiligen Schaltflächen ausführen.
Start beim Systemstart
Nach erfolgreichem Funktionischeck des Webservers, kann dieser konfiguriert werden, damit er beim Systemstart mit gestartet wird:
update-rc.d sispm_web defaults
Anwendung: Schalten eines Gerätes vom Windows-PC
Wenn auf dem Windows-PC Putty installiert ist (→ siehe hier), dann kann mit einer Verknüpfung ein Gerät ein und mit einer zweiten wieder ausgeschaltet werden. Zusammen mit Putty wurde das Programm plink.exe installiert, welches diese Funktion ermöglicht.
Voraussetzung:
- OpenSSH mit Public Key wurde eingerichtet
- Putty installiert auf dem Client-PC
Verknüpfung zum Einschalten des Gerätes (z.B. Drucker):
- Verknüpfung zu plink.exe (z.B. in C:\Programme\Putty\plink.exe) erstellen
- Die Verknüpfung umbenennen und einen sinnvollen Namen geben, z.B. Drucker_ein
- Die Verknüpfung mit der rechten Maustaste anklicken und Eigenschaften auswählen
- Im Eingabefeld Ziel (nach plink.exe) die Bezeichnung der SSH-Verbindung (die in Putty angelegt wurde) und den Befehl "sispmctl -o Steckdosennummer" anhängen.
- Z.B. um die Steckdose 1 über die Putty-SSH-Verbindung Debian_Server einzuschalten:
- C:\Programme\Putty\plink.exe Debian_Server sispmctl -o 1
- Änderungen mit OK speichern
Verknüpfung zum Ausschalten des Gerätes (z.B. Drucker):
- Verknüpfung zu plink.exe (z.B. in C:\Programme\Putty\plink.exe) erstellen
- Die Verknüpfung umbenennen und einen sinnvollen Namen geben, z.B. Drucker_aus
- Die Verknüpfung mit der rechten Maustaste anklicken und Eigenschaften auswählen
- Im Eingabefeld Ziel (nach plink.exe) die Bezeichnung der SSH-Verbindung (die in Putty angelegt wurde) und den Befehl "sispmctl -f Steckdosennummer" anhängen.
- Z.B. um die Steckdose 1 über die Putty-SSH-Verbindung Debian_Server auszuschalten:
- C:\Programme\Putty\plink.exe Debian_Server sispmctl -f 1
- Änderungen mit OK speichern