Schaltzentrale

Wir brauchen die Kommandos telnet und expect. telnet müsste installiert sein.

Interaktiv

Interaktiv kann die Steckdosenleiste über eine telnet session gesteuert werden:

telnet example.dyndns.com 23

Steuerung per Skript

apt install expect

Eine ausführbare Datei mit dem Dateinamen /usr/local/bin/schaltzentrale.expect mit folgendem Inhalt erzeugen:

#! /usr/bin/expect

set port [lindex $argv 0]
set state [lindex $argv 1]

if {[llength $argv] != 2} {

  puts "Usage: schaltzentrale.expect <port> <state>

port: 1-4
  1: Port 1
  2: Port 2
  3: Port 3
  4: Port 4

state:
  0: off
  1: on

for example:

  2: Port 2 einschalten

    schaltzentrale.expect 2 1

  2: Port 2 ausschalten

    schaltzentrale.expect 2 0

"

  exit 1
}

set timeout 20
spawn telnet example.dyndns.com 23
expect "Console activated."
expect "Console login: "
send "admin\r"
expect "Password: "
send "password\r"
expect "Login accepted."
send "port $port state set $state\r"
expect "OK."

Das geht zum Beispiel mit nano:

nano /usr/local/bin/schaltzentrale.expect

Ausführbar machen:

chmod a+x /usr/local/bin/schaltzentrale.expect

Dann ausloggen neu einloggen, oder frische Shell aufrufen:

bash

Dann gehts los:

Port 4 ausschalten

schaltzentrale.expect 4 0

Port 4 einschalten

schaltzentrale.expect 4 1