[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

Breaked

Das aktuelle Skript 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 TVS-463 in den Ruhemodus versetzen"
exit 0


Hab das \ wieder raus genommen.

Habe dann nochmal per Konsole ausgeführt, mit diesem Ergebnis

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 20:22:01 3: QNAP TVS-463 in den Ruhemodus versetzen
fhem@raspberrypi:~/FHEM$
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux


#!/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 TVS-463 in den Ruhemodus versetzen"
exit 0


Warum codest Du nicht username und hostname hart ein. username muß ja fhem sein, und noch mal unter /opt/fhem/ auf dem pi muß auch der .ssh ordner mit dem Zertifikat liegen.


#!/bin/bash
username="$1"
hostname="$2"
ssh fhem@IP_QNAP '/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


Bitte anstelle IP_QNAP die tatsächliche ip eingeben. Aber ich denke mal bevor Du irgendwas weiter machst, teste erstmal ob fhem überhaupt ssh zu Deinem QNAP mit Zertifikat kann.


su -s /bin/bash -c ssh fhem@IP_QNAP '/bin/echo mem > /sys/power/state' fhem


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

Danke dafür erstmal.

Habe ich jetzt grundsätzlich einen Denkfehler???
Ich logge mich doch aus fhem heraus mittels ssh auf den admin Account auf dem NAS ein und führe so dann das Skript aus!?

So wie du es geschrieben hast, muss ich ja mit dem User fhem auf mein NAS zugreifen und den Code ausführen, was aber ja meiner Meinung nach nicht funktionieren wird. Denn ein fhem Account besteht auf dem NAS ja gar nicht.


Vielleicht werkel ich aber auch schon zu lange an ein und der selben Sache rum ...
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Also irgendwie sind wir beide jetzt durcheinander.
So wie das Skript geschrieben ist und auch von Anfang an war, meldet sich das Skript per ssh auf einen Rechner ein und führt doch einen Befehl aus. Das Skript muß also auf dem fhem Server liegen.
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

Genau, nur du willst dich ja mit "deinem" Skript mit dem User fhem auf das QNAP einloggen, was sich ja widerspricht, da der User auf dem QNAP nicht existiert.
Das Skript liegt auf auf dem fhem Server, klar. Nur das Skript meldet sich mit admin@10.0.0.10 am QNAP an und fhem führt das Skript dann aus.

So ist zumindest meine Logik hinter dem ganzen Chaos :P

Werde mich sonst morgen nochmal dran setzen, eventuell fällt einem dann ja der Fehler auf.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Ich habe Dir ja kein Skript gegeben sondern nur Code damit Du mal testen kannst ob Deine Zertifikatsauthentifizierung als fhem user klappt. also Du Dich im User Profil fhem als admin auf dem QNAP anmelden kannst.

Aber Du hast Recht, hier habe ich mich in der Tat vertan

#!/bin/bash
username="$1"
hostname="$2"
ssh fhem@IP_QNAP '/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


Muss heißen


#!/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


Sorry
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, das war ein Missverständnis.
Habe den Code aber so mal in der Konsole ausgeführt mit folgendem Ergebnis:
pi@raspberrypi ~ $ su -s /bin/bash -c ssh fhem@10.0.0.10 '/bin/echo mem > /sys/power/state' fhem
Kein Passworteintrag für Benutzer »fhem@10.0.0.10«

Das scheint nicht zu funktionieren.

Genau so, wie du den Skript-Code (überarbeitet) geschrieben hast, habe ich ihn auch schon bei mir drin.
Ausführen in FHEM lasse ich ihn damit:
attr QNAP shutdownCmd {system("/opt/fhem/FHEM/qnap.sh")}

QNAP fährt in den Ruhezustand, aber die FHEM Oberfläche hängt sich eben auf.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux


pi@raspberrypi ~ $ su -s /bin/bash -c ssh fhem@10.0.0.10 '/bin/echo mem > /sys/power/state' fhem
Kein Passworteintrag für Benutzer »fhem@10.0.0.10«

Kann ja auch nicht. Du musst ja wirklich admin statt fhem nehmen denn nur admin ist auf dem QNAP als User drauf.


ok das müssen wir mal besser testen.


usermod -s /bin/bash fhem


danach


su fhem


nun solltest Du fhem sein


whoami


sollte fhem sagen

Wenn ja machst Du folgendes

ssh admin@10.0.0.10


nun solltest Du auf dem QNAP sein.
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

Das habe ich ja quasi schon probiert, was ja funktioniert.

Hatte in sudo nano /etc/passwd
fhem:x:999:20::/opt/fhem:/bin/false auf
fhem:x:999:20::/opt/fhem:/bin/bash geändert, sowie dem User fhem ein Passwort vergeben um mich direkt per ssh einloggen zu können.

Dementsprechend dann eingeloggt auf dem pi als User fhem ssh admin@10.0.0.10 ausgeführt.
Und zack - ich bin ohne Passwortabfrage auf dem QNAP.

Standby funktioniert auf dem QNAP ja, wegen des aufhängen seitens FHEM: Kann es damit zusammenhängen, dass die ssh-Verbindung dann quasi abrupt getrennt wird und FHEM damit nicht klar kommt? Kam mir gerade so in den Sinn...
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Lass uns mal bitte kleine Schritte machen und uns ran tasten.

Jetzt machst Du das erst mal wieder rückgangig so das der User pi wieder nur /bin/false als shell hat. dann anmelden am pi als user root und noch mal das hier probieren


su -s /bin/bash -c ssh admin@10.0.0.10 '/bin/echo mem > /sys/power/state' fhem
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

Sorry, wie genau mach ich das rückgängig?

Quasi fhem Login deaktivieren?
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

na genau so wie du es mir geschrieben hast.

/etc/passwd und dann aus bash false machen.
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

#27
Da bekomme ich die Ausgabe

root@raspberrypi ~ $ su -s /bin/bash -c ssh admin@10.0.0.10 '/bin/echo mem > /sys/power/state' fhem
Kein Passworteintrag für Benutzer »admin@10.0.0.10«
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Guten Morgen,

Ok dann lassen wir das erstmal. Pass mal Dein Script bitte korrekt an. Also mit admin und IP.

Dann machst Du einfach

su -s /bin/bash -c /Pfad/zum/Skript fhem


Hier sollte auf jeden was passieren
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

Moin,

das Script 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


Den Befehl für die Konsole so ausgeführt:
pi@raspberrypi ~ $ su -s /bin/bash -c /opt/fhem/FHEM/qnap.sh fhem
Passwort:
ssh: connect to host 10.0.0.10 port 22: No route to host
2016.06.18 10:29:45 3: QNAP TVS-463 in den Ruhemodus versetzen


NAS fährt in den Ruhemodus und FHEM stürzt NICHT ab! :)

Allerdings, wie du siehst, wurde ein Passwort eingefordert. Da bin ich mir nicht sicher wieso.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Fhem kann ja auch nicht abstürzen. Da das Script ja nicht aus fhem heraus aufgerufen wurde.
Hast Du das Passwort eingegeben und dann ist das Script weiter gelaufen oder stand nur da Passwort eingeben und das Script lief dennoch bis zum Schluß?
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

Ja, musste das Passwort eingeben und dann ist das Script durchgelaufen.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Zitat von: Breaked am 18 Juni 2016, 10:32:26
Moin,

das Script 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


Den Befehl für die Konsole so ausgeführt:
pi@raspberrypi ~ $ su -s /bin/bash -c /opt/fhem/FHEM/qnap.sh fhem
Passwort:
ssh: connect to host 10.0.0.10 port 22: No route to host
2016.06.18 10:29:45 3: QNAP TVS-463 in den Ruhemodus versetzen


NAS fährt in den Ruhemodus und FHEM stürzt NICHT ab! :)

Allerdings, wie du siehst, wurde ein Passwort eingefordert. Da bin ich mir nicht sicher wieso.

Ich sehe gerade das ist nicht das ssh Passwort sondern das Passwort von FHEM User. Du hast den Befehl als Pi User ausgeführt. Bitte wiederhole das mal und melde dich als root an und dann noch mal den Befehl aus führen.
Aussersem konnte er wohl den Host nicht finden. Aber das kann sein als er das Teil schon runterfahren lassen hat.

Also jetzt noch mal voll Konzentrieren.
Auf dem fhem-pi als User root anmelden.
Den Befehl su -c bla bla aus führen. Und schauen was passiert.
Wir sind Nahe dran denke ich.


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

Alles klar, hab ich gemacht.

root@raspberrypi:~# su -s /bin/bash -c /opt/fhem/FHEM/qnap.sh fhem

Das NAS geht in den Ruhemodus, das Script bleibt aber augenscheinlich hängen.
Der Cursor springt nur in die nächste Zeile und bleibt dort hängen.

Nach einigen Sekunden kommt

root@raspberrypi:~# su -s /bin/bash -c /opt/fhem/FHEM/qnap.sh fhem
ssh: connect to host 10.0.0.10 port 22: Connection timed out
2016.06.18 11:20:46 3: QNAP TVS-463 in den Ruhemodus versetzen
root@raspberrypi:~#


Scheinbar wirklich das Problem was ich vermute, dass sich das Script aufhängt, da die ssh Verbindung unterbrochen wird?
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Und jetzt weißt Du auch wieso fhem hängt. Das Script läuft nicht durch und fhem oder besser Perl wartet auf eine Rückmeldung.
Schritt eins erledigt. Das Problem erkannt.

So also was ist nun unser Problem. Ganz klar, unser Script ruft einen Befehl auf und dieser jagt das Gerät  in den Ruhemodus ohne das das Script oder ssh ordentlich beenden kann.
Nun müssen wir das ganze etwas anderes machen.

Wir schicken unseren Aufruf zum runterfahren in den Hintergrund


ssh admin@10.0.0.10 '/bin/echo mem > /sys/power/state 2>/dev/null &'


Dadurch das wir uns mit Zertifikat anmelden sollte es einfach so durch rennen
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, hab ich mir gedacht.

Das führe ich dann jetzt erstmal wieder in der Konsole aus, oder in FHEM?
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Erstmal alles nur Konsole. Das mit fhem kommt ganz ganz zum schluß
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

root@raspberrypi:~# ssh admin@10.0.0.10 '/bin/echo mem > /sys/power/state 2>/dev/null &'
The authenticity of host '10.0.0.10 (10.0.0.10)' can't be established.
RSA key fingerprint is 1b:e3:06:03:27:b1:b4:e5:0c:05:99:27:c9:66:aa:52.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.10' (RSA) to the list of known hosts.
admin@10.0.0.10's password:
root@raspberrypi:~#


Musste Passwort eingeben, danach sehe ich nichts mehr in der Konsole.
NAS geht in den Ruhemodus.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Ok ich merke schon. Ich muss ausführlicher schreiben.  ;D

Du möchtest bitte Dein Script so anpassen das sich die ssh Zeile so ändert das am Ende ein & steht. So wie ich es oben geschrieben habe. Dann startest Du bitte mit dem bekannten su Befehl so wie die ganze Zeit schon das Script.

Ok?

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

Script angepasst ;D

#!/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


Dann ausgeführt
root@raspberrypi:/opt/fhem/FHEM# su -s /bin/bash -c /opt/fhem/FHEM/qnap.sh fhem
2016.06.18 12:30:44 3: QNAP TVS-463 in den Ruhemodus versetzen
root@raspberrypi:/opt/fhem/FHEM#


Keine Passwortabfrage, NAS geht aus.
So richtig gemacht? :P :-[

Bedeutet doch, dass ich es so jetzt über FHEM testen kann, richtig richtig? :)
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Sehr gut. Und nun können wir in der Tat in Fhem testen.

Aber bitte richtig. So das wir später auch noch mit Rückgabewerten arbeiten können. Also


{ qx(hier den Script Aufruf rein) }


Das so bitte in die fhem eingabekonsole vom Web 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

CoolTux

OHNE SU BITTE.

Nur

/opt/fhem/FHEM/qnap.sh
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

#42
ERSTE SAHNE! 8)

Läuft!
Einen ganz, ganz großen Dank an dich!

P.S.: Auch sehr praktisch, wenn man homebridge nutzt und den Server jetzt auch aus der Ferne mit Siri ein/ausschalten kann 8)
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Na siehste. Und weil wir es so richtig richtig machen wollen und Du vielleicht auch noch was lernen möchtest. Schreiben wir uns noch ein zwei Hilfen und Erleichterungen. Kann man auch später immer noch gebrauchen.

Muss jetzt aber erstmal mit meiner Tochter Mathe machen. Melde mich später noch mal.
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

Alles klar, habe schonmal versucht es verständlich in meinem ersten Post für die Nachwelt zu formulieren :)
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Nimm mal bitte den Teil mit der Änderung der Shell und dem Vergeben eines Passwortes für den User fhem raus. Das brauch man nicht. Das war nur zum testen. Das ist sogar nicht so gut wenn das so gemacht wird ohne Wissen was da passiert.
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

Man muss aber doch mit dem User fhem die Keys erstellen?

Ansonsten markiere mir mal bitte, was du genau rausnehmen würdest.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

So nun zum Lernteil.

Man kann sich für ssh eine config Datei anlegen. So muß man den ganzen ssh Befehl nicht komplett aufrufen.
Für den normalen gebrauch von ssh sieht das ganze ja so aus

ssh user@host


wenn man nun noch mit Zertifikaten arbeitet und nicht den Standard nimmt wird es schon mehr

ssh user@host -i /home/user/identityfile


also machen wir folgendes. Wir legen eine Config Datei an
Unter .ssh legen wir eine Datei namens config an

.ssh/config


Die Datei füllen wir mit folgendem Inhalt


Host irgendeinname
        Hostname ip-zielhost
        User loginuser
        Port SSHPORT
        ServerAliveInterval 30         Verbindungsoptionen
        ServerAliveCountMax 120  hier auch


In Deinem Fall für den QNAP Zugang wäre es

Host qnap
        Hostname 10.0.0.10
        User admin
        ServerAliveInterval 30
        ServerAliveCountMax 120


Das sollte auch schon reichen. Nun das File Speichern und dann würde unser ssh Aufruf für den QNAP in Zukunft so aussehen

ssh qnap


Macht Also für den ssh Aufruf in Deinem Script folgende Änderung

ssh qnap '/bin/echo mem > /sys/power/state 2>/dev/null &'




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

CoolTux

Zitat von: Breaked am 18 Juni 2016, 13:23:21
Man muss aber doch mit dem User fhem die Keys erstellen?

Ansonsten markiere mir mal bitte, was du genau rausnehmen würdest.

Nein muss man nicht. Man muss einfach nur EINEN Key erstellen. Diesen muß man dann entsprechend verteilen. Im Key steht nicht drin für wen der Key ist. Man muß aber entsprechend den benötigten Usern den Key geben. Also hättest Du auch mit dem user pi den Key erstellen können und ihn dann in den Ordner von fhem /opt/fhem/ssh/ kopieren müssen. Natürlich die Rechte des Keyfiles noch anpassen. Das wäre auch gegangen.
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

Danke nochmal für den Lernteil.
So, wie es jetzt ist, finde ich es aber auch in Ordnung. Da kann ruhig admin@10.0.0.10 stehen :)

Hab den ersten Post nochmal geändert, kann man es so lassen?
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

So und weiter geht es.
Damit wir in Zukunft nicht wieder einen Hänger bekommen und unser Skript nicht einfach schreibt QNAP TVS-463 in den Ruhemodus versetzen obwohl die ssh verbindung schon nicht geklappt hat, machen wir filgendes
#!/bin/bash -e

#!/bin/bash -e
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


Das bedeutet das sobald ein Fehler bei der Kommandoverarbeitung auftritt das Skript mit dem letzten Kommandoverarbeitungsfehlermeldung abgebrochen wird.
Das wiederum können wir nutzen um zum Beispiel in FHEM das ganze Weiterverarbeiten zu können.
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

CoolTux

Zitat von: Breaked am 18 Juni 2016, 13:46:54
Hab den ersten Post nochmal geändert, kann man es so lassen?

Ich denke mal schon
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

CoolTux

So ich denke das reicht erstmal. Und nun wünsche ich Dir viel Spaß mit Deinem QNAP   ;D
Bis bald.


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

Bartimaus

Moin,

ich muss das nochmal ausbuddeln. Nachdem das herunterfahren 2 Monate tadellos geklappt hat, bekam ich gestern folgende Meldung im Log nachdem ich das QNAP per remote schlafenlegen wollte:

2017.06.23 22:17:19.449 3: [Mediaserver]2017.06.23 22:17:19 3: QNAP TS-653 in den Ruhemodus versetzen
Host key verification failed.
RSA host key for 192.168.xxx.x has changed and you have requested strict checking.
  remove with: ssh-keygen -f "/opt/fhem/.ssh/known_hosts" -R 192.168.xxx.x
Offending RSA key in /opt/fhem/.ssh/known_hosts:1
Add correct host key in /opt/fhem/.ssh/known_hosts to get rid of this message.
Please contact your system administrator.
xx.xx.xx.x.xx.
The fingerprint for the RSA key sent by the remote host is
It is also possible that a host key has just been changed.
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2017.06.23 22:17:19.225 3: [Mediaserver] shutdownCmd: { qx("/opt/fhem/FHEM/qnap.sh") } executed
2017.06.23 22:17:19.036 3: [Mediaserver] set Mediaserver off


Ich muss dazu sagen, das ich das QNAP vor ein paar Tagen komplett neu gestartet habe. Geht dabei der Fingerprint verloren ?
Sonstige Konfigänderungen wurden weder an FHEM/Banana noch am QNAP vorgenommen. Von aussen ist der Zugriff lediglich per VPN möglich.
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

CoolTux

Entweder Dateisystem beschädigt auf dem NAS oder der privat Key ist weg. Wie auch immer. roll einfach den Key auf dem NAS noch mal neu aus. Ich hoffe doch schwer Du hast ihn noch. Wenn nicht, neu erstellen.
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

Bartimaus

Moin,

bin ich gerade dabei (versuche es zumindest).
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Bartimaus

Mist, klappt nicht.

Was versuche ich:
per ssh auf QNAP einloggen
ssh-keygen -t rsa –C admin@IP-QNAP

erfolgreich angelegt

dann auf Banana per Konsole:
su fhem
ssh-keygen -t rsa -C fhem@IP-Banana (->Pfad /opt/fhem/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub admin@IP-QNAP

Wenn ich dann das QNAP aus FHEM heraus (per Skript) in den Ruhemodus schicken will, bekomme ich die Fehlermeldung im Log: HOST verfification failed

Bislang hatte das so funktioniert. Skript wurde nicht geändert. Ich meine das auch so vor ca. 2 Monaten eingerichtet zu haben. Hatte mir damals alle Schritte notiert.

Was fehlt denn noch oder was mache ich falsch ?




LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

CoolTux

Wieso legst Du zwei unterschiedliche Keyfiles an? Einfach auf den fhem Server ein Keyfile anlegen und signieren. Dann hast Du ein privaten und ein öffentlichen. Den privaten kopierst du auf das nas und den öffentlichen behälst du für den fhem server.
Schau noch mal ob du im Netz eine Anleitung zum erstellen von keyfiles und gegensignieren findest.
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

Bartimaus

Danke. Ich hatte mich an die Anleitung aus dem Eingangsposting gehalten. (Mit dem Unterschied das ich das alles in der Konsole vom User "fhem" aus gemacht habe.)

Ich habe mich jetzt nochmal per Konsole@Banana mit ssh auf dem Qnap angemeldet. Dabei den Key bestätigt. Dann wurde auch die Datei "known_hosts" aktualisiert.
Danach hat es geklappt.
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Breaked

Ist denn an der Anleitung aus dem ersten Post etwas falsch?
Dann würde ich es gerne ändern, damit nicht noch jemand damit Probleme hat.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

Bartimaus

Ich bin nicht so vermessen zu sagen das das falsch ist, nur bei mir hatte es damit auf Anhieb nicht geklappt.

Was bei mir noch fehlte war das das ganze nur funktioniert, wenn man das mit dem User fhem macht.
Hierzu habe ich mich an diese Anleitung gehalten: https://forum.fhem.de/index.php/topic,46557.msg382975.html#msg382975

Und wie gesagt, als User fhem auf qnap von der Konsole aus einmalig anmelden: "ssh admin@IP-QNAP" und Key bestätigen.
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly