Qnap NAS Ruhemodus/herunterfahren: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
(Anpassung von <source>-Tags nach <syntaxhighlight>)
Zeile 16: Zeile 16:
Hierfür sind die Schritte unter [https://www.debian-administration.org/article/530/SSH_with_authentication_key_instead_of_password SSH with authentication key instead of password] zu befolgen und an die eigenen Gegebenheiten anzupassen.<br>
Hierfür sind die Schritte unter [https://www.debian-administration.org/article/530/SSH_with_authentication_key_instead_of_password SSH with authentication key instead of password] zu befolgen und an die eigenen Gegebenheiten anzupassen.<br>
Auf dem FHEM Host muss der Public Key erstellt werde (Generate the authentication key). Hierfür muss der FHEM User genutzt werden:
Auf dem FHEM Host muss der Public Key erstellt werde (Generate the authentication key). Hierfür muss der FHEM User genutzt werden:
<source lang="perl">
<syntaxhighlight lang="perl">
su - root
su - root
su - fhem
su - fhem
</source>
</syntaxhighlight>
Nun folgen die Schritte aus der oben referenzierten Anleitung:
Nun folgen die Schritte aus der oben referenzierten Anleitung:
<source lang="perl">
<syntaxhighlight lang="perl">
ssh-keygen
ssh-keygen
enter
enter
Zeile 28: Zeile 28:
ssh-copy-id -i /opt/fhem/ssh-keygen.pub admin@<IP eures Qnaps>
ssh-copy-id -i /opt/fhem/ssh-keygen.pub admin@<IP eures Qnaps>
...
...
</source>
</syntaxhighlight>


Anschließend muss der Public Key auf dem NAS abgelegt werden. (Install the public key on the servers).
Anschließend muss der Public Key auf dem NAS abgelegt werden. (Install the public key on the servers).
Zeile 34: Zeile 34:
== Script in FHEM anlegen ==
== Script in FHEM anlegen ==
Anlage der Datei über Terminal (putty o.ä.). Der erste Befehl erzeugt eine leere Datei, die anschließend dem User fhem zugeordnet wird und zum Schluss ausführbar gemacht wird.
Anlage der Datei über Terminal (putty o.ä.). Der erste Befehl erzeugt eine leere Datei, die anschließend dem User fhem zugeordnet wird und zum Schluss ausführbar gemacht wird.
<source lang="perl">
<syntaxhighlight lang="perl">
sudo touch /opt/fhem/FHEM/shutdownNAS.sh && sudo chown -R fhem /opt/fhem/ && sudo chmod +x /opt/fhem/FHEM/shutdownNAS.sh
sudo touch /opt/fhem/FHEM/shutdownNAS.sh && sudo chown -R fhem /opt/fhem/ && sudo chmod +x /opt/fhem/FHEM/shutdownNAS.sh
</source>
</syntaxhighlight>
Nun muss der Code des Scripts eingefügt werden. Dies kann entweder über die FHEM Oberfläche (Edit files) oder das Terminal erfolgen. Für letzteres lautet der Befehl:
Nun muss der Code des Scripts eingefügt werden. Dies kann entweder über die FHEM Oberfläche (Edit files) oder das Terminal erfolgen. Für letzteres lautet der Befehl:
<source lang="perl">
<syntaxhighlight lang="perl">
sudo nano /opt/fhem/FHEM/shutdownNAS.sh
sudo nano /opt/fhem/FHEM/shutdownNAS.sh
</source>
</syntaxhighlight>
Folgender Code muss eingefügt werden (die IP Adresse des eigenen NAS ist anzupassen):
Folgender Code muss eingefügt werden (die IP Adresse des eigenen NAS ist anzupassen):
<source lang="perl">
<syntaxhighlight lang="perl">
#!/bin/bash
#!/bin/bash
# SH_shutdownNAS.sh
# SH_shutdownNAS.sh
Zeile 53: Zeile 53:
exit 0
exit 0


</source>
</syntaxhighlight>


== Script ausführen ==
== Script ausführen ==
Zeile 59: Zeile 59:
Ebenso sollte bedacht werden, dass das Script nicht vollständig durchlaufen werden kann, da die Verbindung zum NAS verloren geht. Deshalb erfolgt der Aufruf des Scripts am Ende mit &.<br>
Ebenso sollte bedacht werden, dass das Script nicht vollständig durchlaufen werden kann, da die Verbindung zum NAS verloren geht. Deshalb erfolgt der Aufruf des Scripts am Ende mit &.<br>
Das Script kann über die FHEM Oberfläche
Das Script kann über die FHEM Oberfläche
<source lang="perl">{system('/opt/fhem/FHEM/SH_shutdownNAS.sh&')}</source>
<syntaxhighlight lang="perl">{system('/opt/fhem/FHEM/SH_shutdownNAS.sh&')}</syntaxhighlight>
oder in einer 99_myUtils.pm
oder in einer 99_myUtils.pm
<source lang="perl">system('/opt/fhem/FHEM/SH_shutdownNAS.sh&');</source>
<syntaxhighlight lang="perl">system('/opt/fhem/FHEM/SH_shutdownNAS.sh&');</syntaxhighlight>
ausgeführt werden.
ausgeführt werden.



Version vom 26. Juli 2017, 20:01 Uhr

Mit dieser Anleitung ist es möglich sein NAS über FHEM in den Ruhemodus zu versetzen. Dies ist ggf. sinnvoll, wenn man es nur bei Anwesenheit nutzt. Der Stromverbrauch lässt sich dadurch deutlich senken. Per WoL kann es bei Bedarf wieder gestartet werden.
Dieser Artikel basiert auf einem Beitrag im Forum und lässt sich sicherlich auch für andere NAS nutzen/anpassen.

Idee

Das NAS kann nur über die Oberfläche oder eine Terminalsession auf dem NAS selbst in den Ruhemodus versetzt werden. Mittels einer SSH Verbindung vom FHEM Host zum NAS ist dies möglich. Da man das Administrationskennwort des NAS nicht im Klartext hinterlegen möchte, soll stattdessen ein SSH Key verwendet werden.

Voraussetzungen

Das Kennwort des root Users auf dem FHEM Host muss bekannt sein.

Der User FHEM muss sich anmelden dürfen. Hierfür muss ggf. die Datei /etc/passwd angepasst werden:

sudo nano /etc/passwd

Dort muss der Eintrag fhem:x:999:20::/opt/fhem:/bin/false in fhem:x:999:20::/opt/fhem:/bin/bash geändert werden.
Wichtig: Dies sollte nach der vollständigen Einrichtung wieder rückgängig gemacht werden!

SSH Key für User FHEM anlegen

Hierfür sind die Schritte unter SSH with authentication key instead of password zu befolgen und an die eigenen Gegebenheiten anzupassen.
Auf dem FHEM Host muss der Public Key erstellt werde (Generate the authentication key). Hierfür muss der FHEM User genutzt werden:

su - root
su - fhem

Nun folgen die Schritte aus der oben referenzierten Anleitung:

ssh-keygen
enter
enter
enter
ssh-copy-id -i /opt/fhem/ssh-keygen.pub admin@<IP eures Qnaps>
...

Anschließend muss der Public Key auf dem NAS abgelegt werden. (Install the public key on the servers).

Script in FHEM anlegen

Anlage der Datei über Terminal (putty o.ä.). Der erste Befehl erzeugt eine leere Datei, die anschließend dem User fhem zugeordnet wird und zum Schluss ausführbar gemacht wird.

sudo touch /opt/fhem/FHEM/shutdownNAS.sh && sudo chown -R fhem /opt/fhem/ && sudo chmod +x /opt/fhem/FHEM/shutdownNAS.sh

Nun muss der Code des Scripts eingefügt werden. Dies kann entweder über die FHEM Oberfläche (Edit files) oder das Terminal erfolgen. Für letzteres lautet der Befehl:

sudo nano /opt/fhem/FHEM/shutdownNAS.sh

Folgender Code muss eingefügt werden (die IP Adresse des eigenen NAS ist anzupassen):

#!/bin/bash
# SH_shutdownNAS.sh

DATE=$(date +%Y.%m.%d)
TIME=$(date +%T)
echo $DATE $TIME "3: NAS in den Ruhemodus versetzen"

ssh admin@192.168.xxx.xxx "echo mem > /sys/power/state"
exit 0

Script ausführen

Es gilt zu beachten, dass FHEM als return eines solchen Scripts immer -1 ausgibt.
Ebenso sollte bedacht werden, dass das Script nicht vollständig durchlaufen werden kann, da die Verbindung zum NAS verloren geht. Deshalb erfolgt der Aufruf des Scripts am Ende mit &.
Das Script kann über die FHEM Oberfläche

{system('/opt/fhem/FHEM/SH_shutdownNAS.sh&')}

oder in einer 99_myUtils.pm

system('/opt/fhem/FHEM/SH_shutdownNAS.sh&');

ausgeführt werden.

Links