Aus FHEM WLAN IP-Gerät restarten

Begonnen von Peter aus Calw, 03 April 2016, 21:05:20

Vorheriges Thema - Nächstes Thema

Peter aus Calw

Hallo,

mit folgender Anordnung lese ich Zaehlerstände von einem SiemensTD3511 per YPORTX (WLAN) aus :

define EHT_Zaehlerstand VOLKSZAEHLER 192.168.2.4 80 46412790-c159-11e5-ae2f-3f2b5edecf9d average 120

das funktioniert auch sehr gut. Ab und zu - manchmal nur 1 mal in der Woche - stoppt das Auslesen ???
Dann logge ich mich per Browser auf dem YPORTX ein - mache einen Neustart - und es läuft wieder.
Wie könnte man das automatisieren ? Ist es möglich aus FHEM heraus einen regelmäßigen Neustart einzuleiten ?
Habe das zwar von der Konsole aus versucht - aber ohne Erfolg.
Über Hilfe würde ich mich freuen.
Gruß Peter

linuxpaul

Hi,

ich würde es mit einem Perl Script versuchen. Such mal nach LWP und/oder LWP::UserAgent.
Evtl. geh da was.

:)
linuxpaul

Peter aus Calw

Hallo linuxpaul,
danke für Deine schnelle Antwort, da ich null Ahnung von Programmieren habe und dies mit 70 auch kaum noch schaffen werde möchte ich mein Problem etwas genauer beschreiben.
mit ssh kann die Verbindung zum YPORT auf der Konsole hergestellt werden und dieser verlangt das Passwort
danach führe ich das "/sbin/reboot" aus, was ja auch funktioniert.

$ ssh root@192.168.2.xxx             
root@192.168.2.xxx's password:yyyyy
root@YPORT:~#/sbin/reboot


aber wie bekommt man das in ein automatisch auszuführendes skript ?

Gruß Peter



linuxpaul

Du kommt mit ssh drauf?
Dann wird das viel einfacher :)
google mal nach dem linux Kommando expect.

:)
linuxpaul

linuxpaul

Beispiel:
#!/usr/bin/expect
set addr "192.168.2.xxx"
set login "root"
set pw "password"
set timeout -1
spawn ssh root@192.168.2.xxx
expect "$login@$addr\'s password:"
send "$pw\r"
expect "root@YPORT"
send /sbin/reboot


Sollte der YPORT eine ssh Anmeldung via Cert ermöglichen,
geht das auch ohne expect.

:)
linuxpaul

Peter aus Calw

Hallo linuxpaul,
hat bei mir etwas länger gedauert, aber ich habe es auch geschafft, bestimmt nicht nach Regeln - schau es mal an :

#!/usr/bin/expect

set host [lindex $argv 0]

set timeout 2

spawn /usr/bin/ssh root@192.168.2.146

expect "(yes/no)? " {

send "yes\r"

}

expect "password:"

send "admin\r"

expect "#"

send "cd /sbin\r"
send "reboot\r"

interact


es funktioniert, habe es in einem 2.Terminal mit ping beobachtet.
Natürlich werde ich Dein professionelles skript übernehmen, bin aber trotzdem ein bisschen stolz.
Werde Dir berichten wenn ich Deines übernommen habe.
Gruß Peter

linuxpaul

Ole, Ole,
Hast'e doch Gut gemacht.
Andere Lösungen müssen nicht immer besser oder schlechter sein,
sie zeigen allenfalls die Anforderung aus einem anderen Blickwinkel.

Weiter so !!!

:)
linuxpaul


Peter aus Calw

Hallo linuxpaul,
habe in Deinem skript noch 2 Sachen geändert und dann hat es auch funktioniert :

send "/sbin/reboot\r"

interact


einfach klasse, danke Dir für Deine Geduld.Wenn ich mit einem weiteren Problem um Hife fragen darf ?
Habe ein skript mit dem ich in Linux per playonlinux ein Excelmakro ablaufen lasse. Dieses skript läuft auf der Konsole ohne
Probleme, auch der Inhalt funktioniert so, aus crontab aber nicht.
mein skript  :

/usr/bin/auto_open.sh

#!/bin/bash
#
/usr/share/playonlinux/playonlinux --run "Microsoft Excel 2010" /home/anlagenprotokoll/auto_open.xlsm


Habe natürlich schon in fhem und linux Foren um Rat gefragt, aber noch keine Lösung gefunden.
zur Zeit mache ich das mit :

watch -n86400 -x /usr/bin/auto_open.sh

das läuft jetzt auch schon einige Wochen, hat aber den Nachteil, daß bei einem Netzausfall das Kommando um 22:00 Uhr neu gestartet werden muss.
Also wenn es dich nicht zu sehr belastet, kannst es ja mal anschauen.
erstmal viele Grüße aus dem Nordschwarzwald von Peter






   

linuxpaul

playonlinux? Cool, kenn ich noch gar nicht, schau ich mir mal an.
ich schick dir ein PN mit meiner mail Addresse, da das jetzt nichts mehr mit FHEM zu tun hat.

:)
linuxpaul