TP-Link Power over Ethernet Switch fernsteuern

Begonnen von Uhrheber, 22 September 2016, 19:43:52

Vorheriges Thema - Nächstes Thema

Uhrheber

Hi.
Ich habe einen TP-Link GB Ethernet Switch (TL-SG2210P), der Power over Ethernet beherrscht.
Ich habe einige Geräte per PoE versorgt, die ich gerne mit FHEM ferngesteuert schalten würde.
Man kann PoE per Port entweder über die Weboberfläche des Switches schalten, oder per SSH.

Um z.B. Port 1 auszuschalten, muss ich mich mit Username und Passwort per ssh einloggen, und dann eingeben:

enable
configure
interface gigabitEthernet 1/0/1
power inline supply disable


Jeweils mit Enter angeschlossen.

Wie könnte ich so was mit FHEM automatisieren?
Also per script einloggen und die Kommandos senden?

Danke für Euro Antworten.

Dr. Boris Neubert

Hallo,

unter Unix würde ich das mit expect | ssh skripten und per "" als Shell-Kommando aus einem notify auf ein set dummy on/off absetzen. Zu expect gibt es gute Tutorials.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Uhrheber

Bingo.
Expect war der entscheidende Tip.
Vielen herzlichen Dank.

Kann ich in FHEM eine Aktion auslösen, wenn eine spezielle IP Adresse längere Zeit nicht erreichbar ist?

Sunless

Zitat von: Uhrheber am 22 September 2016, 20:54:00
Kann ich in FHEM eine Aktion auslösen, wenn eine spezielle IP Adresse längere Zeit nicht erreichbar ist?

Hallöchen, ganz easy:

Das Modul "PRESENCE" benutzen und ein Notify auf den Status. Wenn dieser "absent" ist, ist das Gerät nicht erreichbar.
Presence kann man recht gut konfigurieren und es werden auch temporär fehlgeschlagene Pings abgefangen.

Grüße
Sebastian
FHEM-Master@Raspi2B (CUL433,etliche CUL_TCM97001-Sensoren, zig IT-Steckdosenschalter, Squeezelite)
FHEM-Slave@Raspi (via RFHEM,wired Bewegungsmelder, Sqeezelite)
DS212+ (LMS für Squeezelite-Clients, Surveillance, Mediaserver und Datengrab)
Billig-Tablets zum Steuern (TabletUI)

fl_Indigo

könnte der threadersteller eventuell sein script hier veröffentlichen? ich bin ebenfalls auf der suche nach einer möglichkeit den SG2210P per fhem zu verwalten.
hab mir diverse expect tuts angeschaut, so richtig schlau werd ich daraus allerdings nicht...

fl_Indigo

habe folgendes expect script "poe_set.exp" erstellt welches in der linux shell mit dem aufruf

/usr/bin/expect /opt/fhem/poe_set.exp w.x.y.z user password 2 enable/disable

einwandfrei den port aktiviert und deaktiviert


#!/usr/bin/expect -f

set host [lindex $argv 0]
set user [lindex $argv 1]
set pass [lindex $argv 2]
set port [lindex $argv 3]
set status [lindex $argv 4]

if { $host == "" || $user == "" || $pass == "" || $port == "" || $status == "" }  {
  puts "Usage: <host> <user> <password> <switchport> <POE enable/disable>\n"
  exit 1
}

spawn telnet $host
expect "User:"
send "$user\r"
expect "Password:"
send "$pass\r"

send "enable\r"
send "configure\r"
send "interface gigabitEthernet 1/0/$port\r"
send "power inline supply $status\r"

# Exit the telnet session, and wait for a special end-of-file character.
send "exit\r"
expect eof


wenn ich das script aber per folgendem notify aktivieren will

define n_PoE_Port_2_on notify PoE_Port_2_Switch:on {system("/usr/bin/expect poe_set.exp w.x.y.z user password 2 enable");;}


gibts folgenden mist im logfile und das script wird nicht ausgeführt...

spawn telnet 10.0.0.248
Trying 10.0.0.248...
Connected to 10.0.0.248.
Escape character is '^]'.

***************** User Access Login ********************

User:$$                                                                                                    $                                                                                                    $                                                                                                    $
Password:

Press any key to continue (Q to quit)
                                     
Login invalid.
Press any key to continue (Q to quit)
                                     
Press any key to continue (Q to quit)
                                     
***************** User Access Login ********************
Press any key to continue (Q to quit)
                                     

Press any key to continue (Q to quit)
                                     
User:$
Password:

Press any key to continue (Q to quit)
                                     
Login invalid.
Press any key to continue (Q to quit)
                                     
Press any key to continue (Q to quit)
                                     
***************** User Access Login ********************
Press any key to continue (Q to quit)
                                     

Press any key to continue (Q to quit)
                                     
User:$$                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $

Press any key to continue (Q to quit)
                                     
Login invalid.
Press any key to continue (Q to quit)
                                     
Connection closed by foreign host.
2018.04.18 08:51:11 3: n_PoE_Port_2_on return value: -1


was kann die ursache dafür sein?

Wernieman

#6
Das login scheint nicht zu funktionieren ...

Aber mal eine andere Frage, kann der Switch nicht auch Login per Key (geht jedenfalls hier, sind aber andere TP-Links)? Wäre eigentlich die Optimale Möglichkeit ...

Hast Du mal Probiert, ob der User FHEM auf der Konsole das Script starten kann?
"User:$$ " sieht mir nach Coding-Problemen aus ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

fl_Indigo

in der fhem console klarerweise das selbe, funzt nicht

character encoding wäre naheliegend nachdem was im log steht, aber wie dem entgegenwirken?

Zitat
Aber mal eine andere Frage, kann der Switch nicht auch Login per Key (geht jedenfalls hier, sond aber andere TP-Links)? Wäre eigentlich die Optimale Möglichkeit ...

bitte näher erläutern, ich weiß gerade nicht was du meinst...

Wernieman

Ich meinte nicht "Fhem-Console", sondern als User FHEM in der ssh-konsole.

Bezüglich ssh-key
ssh kann nicht nur mit User/Passwort, sondern auch mit User/ssh-key sich Authentifiziere.  Ist besser (ujnd sicherer), vorallem bei automatischen Logins.

Weiß nur nicht, ob Dein Switch es kann und wo man es einstellt. Für die generierung eines ssh-.keys gibt es genügend Anleitungen
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

fl_Indigo

user fhem kann das script ebenfalls problemlos ausführen

ob nun per telnet oder ssh, die übergabe bzw. das ausführen des expect scripts wird wieder failen nach der derzeitigen variante. wenn die telnet variante mal steht kann ich das immer noch auf die ssh variante übertragen... momentan liegt das hase aber noch woanders im pfeffer...

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

fl_Indigo


Wernieman

telent ....wenig Wissen (mehr) meinerseits ...

aber Grundsätzlich zum Debuggen:
Packe den expect-Befel mal in ein Eigenes Script.
Gebe Dir dort die Übergebenen Variablen aus.
Starte das dann per FHEM ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

fl_Indigo

übergeben wird anscheinend korrekt:

spawn telnet 10.0.0.248
Trying 10.0.0.248...
Connected to 10.0.0.248.
Escape character is '^]'.

***************** User Access Login ********************

User:$$                                                                                                    $                                                                                                    $
Password:

Press any key to continue (Q to quit)
                                     
Login invalid.
Press any key to continue (Q to quit)
                                     
Press any key to continue (Q to quit)
                                     
***************** User Access Login ********************
Press any key to continue (Q to quit)
                                     

Press any key to continue (Q to quit)
                                     
User:$
Password:

Press any key to continue (Q to quit)
                                     
Login invalid.
Press any key to continue (Q to quit)
                                     
Press any key to continue (Q to quit)
                                     
***************** User Access Login ********************
Press any key to continue (Q to quit)
                                     

Press any key to continue (Q to quit)
                                     
User:$$                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $                                                                                                    $

Press any key to continue (Q to quit)
                                     
Login invalid.
Press any key to continue (Q to quit)
                                     
Connection closed by foreign host.
10.0.0.248
user
password
2
enable
2018.04.18 11:55:19 3: n_PoE_Port_2_on return value: -1

Wernieman

ZitatUser:$$
Bist Du Dir sicher?

P.S: wie hast DU es auf der Konsole getestet? Mit "sudo fhem" oder richtig "su - fhem"?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html