[ERLEDIGT] QNAP NAS herunterfahren/standby

Begonnen von Breaked, 14 Juni 2016, 22:03:53

Vorheriges Thema - Nächstes Thema

Breaked

Nabend zusammen,

ich habe bereits über das WOL-Modul den Start meines QNAP-TVS-463 aus dem Ruhezustand heraus ermöglicht.
Das ganze ist auch zusätzlich über Siri integriert.

Nun würde ich das NAS noch gerne via FHEM in der Ruhemodus versetzen können.
Ich habe zwar ein paar Infos aus Google herausziehen können, doch so recht funktioniert es bei mir nicht.

Was über die Konsole super funktioniert, ist: ssh admin@10.0.0.10 halt
Dies versetzt das NAS, nach einer Passwortabfrage, in den Ruhemodus.

Eventuell würde dies ja auch über FHEM funktionieren, doch ich habe da leider zu wenig Erfahrung.
Für eine kurze Hilfe wäre ich sehr dankbar!


LG



Ausführliche Anleitung:
https://ownsmarthome.de/2017/06/howto-qnap-in-fhem-wol-ruhemodus/



Tutorial
QNAP in den Ruhemodus schicken, mittels dem "WOL" Modul.

Schritt 1:
Dem User fhem einen passwortlosen Login ermöglich, wie in diesem Post beschrieben. Stichwort SSH-Keys.

ZitatAuf dem QNAP eine Public Key erzeugen (Per ssh und dem admin-account auf dem NAS einloggen)
ssh-keygen -t rsa –C admin@IP-QNAP


Dann mit pi auf dem Raspberry einloggen und RSA Key erzeugen
login pi
ssh-keygen -t rsa -C pi@IP-Raspberry
Auf das Zielsystem kopieren
ssh-copy-id -i ~/.ssh/id_rsa.pub admin@IP-QNAP


Schritt 2:
Bash-Skript erzeugen. Dieses Skript liegt auf meinem Pi unter "/opt/fhem/FHEM/" und heißt "qnap.sh".
Der Inhalt dieses Skript sieht so aus:
#!/bin/bash
ssh admin@10.0.0.10 '/bin/echo mem > /sys/power/state 2>/dev/null &'
DATE=$(date +%Y.%m.%d)
TIME=$(date +%T)
echo $DATE $TIME "3: QNAP TVS-463 in den Ruhemodus versetzen"
exit 0


Schritt 3:
Im WOL-Modul in FHEM
attr shutdownCmd { qx("/opt/fhem/FHEM/qnap.sh") }
setzen.

Nun sollte schon alles funktionieren :)
Man kann nun das ganze via FHEM testen, ob das NAS in den Ruhemodus fährt.
Hoffentlich kann ich dem ein oder anderen damit helfen.

Der meiste Dank geht aber an CoolTux!
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Das geht nicht. Was Du machen kannst ist ssh mit hilfe von Zertifikatsanmeldung zu verwenden und dann über fhem notify sowas zu machen.


qx(ssh admin@10.0.0.10 'halt')


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

Okay, danke dir schonmal.
Dann werde ich mich in dieses Thema mal einlesen müssen.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

Breaked

Hab mal deinen Link durchgelesen. So ganz will es mir aber nicht in den Sinn.
Gibt es keine andere Alternative?!
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

dev0


CoolTux

Schau Dir mal das Modul 74_HOMBOT an, suche darin nach sshpass. Das kann Dir als Beispiel dienen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

Hallo zusammen.

Ich bin nun etwas weiter gekommen. Mittels sshpass funktioniert nun der gewünschte Ruhemodus so:
/usr/bin/sshpass -p 'password' ssh admin@10.0.0.10 "/bin/echo mem > /sys/power/state 2>/dev/null"

Diesen Befehl würde ich natürlich gern via FHEM und dem WOL-Modul ausführen lassen.
Doch wenn ich den Code attr QNAP shutdownCmd {system ("/usr/bin/sshpass -p 'password' ssh admin@10.0.0.10 "/bin/echo mem > /sys/power/state 2>/dev/null"")} verwende, wird das NAS nicht in den Ruhemodus gefahren.

Es wird mit den " zusammen hängen, doch ich habe leider nicht herausgefunden, wie FHEM den Befehl verstehen könnte.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Noch mal. Schau Dir an wie das im Hombot Modul gemacht wird. Ein besseres Beispiel kann man nicht bekommen. Ich habe keine Lust Dir jetzt hier den Befehl vor zu beten. Es steht ein zu ein im Modul drin.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

#8
Sorry, aber dafür stecke ich nicht so tief in der Materie drin. Ich habe es mir zwar angeschaut, aber ich glaube ich sehe nicht das, was ich eigentlich sehen soll.

Habe mich hiermit mal versucht, doch trotz dieser Schritte authentifiziert der Pi sich am NAS noch immer nicht ohne Passwort. Irgend eine Kleinigkeit mache ich da bestimmt falsch.

Vom Grundprinzip ist es doch so(?):
Ich generiere einen pubic_key auf dem Pi.
Dann kopiere ich den id_rsa.pub in den ssh Ordner auf das NAS.
Den Inhalt des id_rsa.pub kopiere ich in die Datei authorized_keys (aufs NAS).
Dann doch nur einmal über den Pi als User fhem aufs NAS einloggen und ggf. die RSA key Abfrage mit "yes" bestätigen.
Danach sollte sich der User fhem doch ohne Authentifizierung einloggen können?

P.s.: Meinst du diesen Code?
qx($sshpass -p 'most9981' /usr/bin/ssh root\@$host '/usr/bin/lg.srv &' );
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

Breaked

#9
Bin es in diesem Post nochmal komplett durchgegangen, wie der Passwortlose Login funktioniert.
Funktioniert nun!

Die einzige Frage die sich mir nun noch stellt, wie ich mit FHEM meinen Code ausgeführt bekomme.
Mit dem Code alá
qx(ssh admin@10.0.0.10 "/bin/echo mem > /sys/power/state 2>/dev/null")
funktioniert es nicht...

__________________
EDIT
Nochmal alles gecheckt.

Der Login ohne pw funktioniert problemlos.
Ich habe nun ein Script, welches ich auslöse, diese sieht so aus:
#!/bin/bash
username="$1"
hostname="$2"
ssh "$username"@"$hostname" "/bin/echo mem > /sys/power/state 2>/dev/null"
DATE=$(date +%Y.%m.%d)
TIME=$(date +%T)
echo $DATE $TIME "3: QNAP TS-251 in den Ruhemodus versetzen"
exit 0


Über FHEM löse ich mittels dem WOL Modul aus und zwar so:
{system("/opt/fhem/FHEM/qnap.sh admin 10.0.0.10")}

Starten/Ruhezustand funktioniert unter FHEM auch.
Das riesige Problem: FHEM hängt sich nachdem es das NAS in den Ruhezustand schickt komplett auf und ich muss den Pi neu starten.

WORAN kann das bitte liegen???
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Super, hast Du toll gemacht. Das ist mein ernst.
Du hast nun also ein Zertifikat angelegt und unter .ssh entsprechend abgelegt. Wohl gemerkt unter .ssh im Homeverzeichniss von fhem User. Meist /opt/fhem/
Es gibt Sonderzeichen welche maskiert werden müssen. Darunter zählt unter anderem das @
Schau Dir mal den Code an welchen Du bei Deinem vorletzten Post unter PS zu stehen hast.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

#11
Danke nochmal für deine Antwort!

Vielleicht hat sich mein letzter Edit gerade mit deiner Antwort überschnitten?
Es läuft "quasi" schon.. Schön wäre nur, wenn FHEM nicht danach abschmiert :D


Oder muss ich das auch in dem Bash Skript so handhaben?
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Starte das Script mal in der Konsole und schaue ob es durch läuft.
Wenn ja.
Dann probier mal ob Du mit

{ qx(/opt/fhem/FHEM/qnap.sh admin 10.0.0.10) }

besser klar kommst. Das kannst du genau so direkt in der fhem Kommandozeile eingeben.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

In der Konsole sieht es dann so aus:
fhem@raspberrypi:~/FHEM$ bash qnap.sh
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-e escape_char] [-F configfile]
           [-I pkcs11] [-i identity_file]
           [-L [bind_address:]port:host:hostport]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-R [bind_address:]port:host:hostport] [-S ctl_path]
           [-W host:port] [-w local_tun[:remote_tun]]
           [user@]hostname [command]
2016.06.17 19:36:15 3: QNAP TVS-463 in den Ruhemodus versetzen


Ist das so in Ordnung?


Wenn ich in FHEM deinen Code ausführe, hängt es sich auch wieder auf.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Ach so. Sorry mein Fehler. Das ist so gar nicht in Ordnung. Hast du im Script was verändert? Gib mal noch mal das Script. Ins Script kommt bitte keine Maskierung des @ mein Fehler.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net