QNAP NAS durch CCU herunterfahren

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Kuddel071089
Beiträge: 52
Registriert: 23.11.2015, 10:04

QNAP NAS durch CCU herunterfahren

Beitrag von Kuddel071089 » 06.12.2016, 11:08

Hallo zusammen,

gibt es die Möglichkeit, dass die CCU mein QNAP NAS (TS420) per SSH herunterfährt.

Die CCU ist das einzge Gerät, was bei mir, logischerweise 24/7, läuft.

Somit würde ich gerne ein Programm schreiben, welches das NAS ausschaltet, wenn ich nicht zu Hause bin, oder ins Bett gehe.

Das NAS soll dann per SSH heruntergefahren werden.

Hat jmd. damit Erfahrungen gemacht?


Vielen Dank schoneinmal :-)
CCU 2 mit 2 Dimmaktoren, 1 Funk-Schaltaktor, 4 Rolladenaktoren, 2 Heizkörperthermostate, 2 Fensterkontakte sowie 6 FUnk-Schaltaktroren mit Leistungsmessung
Erweiterungen: CuxD, Email, HM-pdetect

Sven_A
Beiträge: 2423
Registriert: 26.01.2016, 08:14
Wohnort: Renningen
Hat sich bedankt: 20 Mal
Danksagung erhalten: 18 Mal

Re: QNAP NAS durch CCU herunterfahren

Beitrag von Sven_A » 06.12.2016, 11:16

Kurzanleitung hier gelöscht, im nächsten Posting gibts die Schritt-für-Schritt-Anleitung.
Zuletzt geändert von Sven_A am 06.12.2016, 11:39, insgesamt 1-mal geändert.

Sven_A
Beiträge: 2423
Registriert: 26.01.2016, 08:14
Wohnort: Renningen
Hat sich bedankt: 20 Mal
Danksagung erhalten: 18 Mal

Re: QNAP NAS durch CCU herunterfahren

Beitrag von Sven_A » 06.12.2016, 11:36

So, und weil ich jetzt sowieso schon dran bin schreib ich das auch gleich mal sauber auf.

Auf der CCU muss der SSH Zugang frei geschalten sein.
Dann das folgende AddOn installieren. Damit wird auf der CCU im Homeverzeichniss des Users ein Link auf den beschreibbaren Bereich angelegt.

Ab jetzt verlassen wir die Weboberfläche, und alles läuft auf der SSH-CLI, egal ob NAS oder CCU
Nach dem SSH Login auf die CCU kann man sich den Inhalt des Homeverzeichnisses anzeigen lassen. Es sollte der Ordner .ssh angelegt sein, der als Link aber auf /usr/local/etc/ssh zeigt:

Code: Alles auswählen

# ls -al
total 8
drwxr-xr-x    2 root     root           440 Nov 28 09:39 .
drwxr-xr-x   20 root     root          1448 Jul 21 12:02 ..
-rw-r--r--    1 root     root             0 Aug 31  2012 .bash_history
-rw-r--r--    1 root     root           175 Aug 31  2012 .bash_logout
-rw-r--r--    1 root     root           161 Aug 31  2012 .bash_profile
lrwxrwxrwx    1 root     root            18 Nov 28 09:39 .ssh -> /usr/local/etc/ssh
Jetzt kann mit dem Befehl "ssh-keygen -t rsa" ein Schlüsselpaar erzeugt werden. Ohne Passwort, ohne anderen Speicherort, einfach mit Enter durchballern.
Die CCU erzeugt dann ein Schlüsselpaar für SSH und speichert die unter .ssh ab. Das kann ein paar Minuten dauern.

Dann wechselt man in das Verzeichniss .ssh und schaut sich das Ergebniss an:

Code: Alles auswählen

# cd .ssh
# ls -al
total 16
drwx------    2 root     root           440 Nov 29 08:31 .
drwxr-xr-x    4 root     root           920 Nov 28 09:39 ..
-rw-------    1 root     root           392 Nov 28 13:27 authorized_keys
-rw-------    1 root     root          1679 Nov 28 13:26 id_rsa
-rw-------    1 root     root           401 Nov 28 13:26 id_rsa.pub
-rw-r--r--    1 root     root           393 Nov 29 08:31 known_hosts
# 
Der Schlüssel "id_rsa.pub" ist der öffentliche Schlüssel, der muss auf dein NAS kopiert werden.
z.B. indem auf der CCU der folgende Befehl abgesetzt wird wenn du in dem Ordner .ssh bist:

Code: Alles auswählen

scp id_rsa.pub [email protected]:/root/ccu_key
A.B.C.D ist die IP deines NAS. Diesesmal musst du noch das SSH Passwort deines Adminaccounts eingeben.

Dann per SSH auf dem NAS einloggen.
Schauen ob der öffentliche Schlüssel der CCU dort angekommen ist:

Code: Alles auswählen

[~] # ls -al
drwxr-xr-x    2 admin    administ       260 Dec  6 11:28 ./
drwxr-xr-x   22 admin    administ       520 Dec  6 11:23 ../
lrwxrwxrwx    1 admin    administ         6 Dec  6  2016 .BitTornado -> ../tmp/
-rw-r--r--    1 admin    administ         5 Jan 11  2008 .bash_history
-rw-r--r--    1 admin    administ       175 Oct  9  2004 .bash_logout
-rw-r--r--    1 admin    administ       161 Oct  9  2004 .bash_profile
-rw-r--r--    1 admin    administ      1687 Jul 18  2007 .bashrc
-rw-r--r--    1 admin    administ        36 Dec  6 11:23 .buzzer_warnning.conf
-rw-r--r--    1 admin    administ        27 Jan 29  2007 .profile
lrwxrwxrwx    1 admin    administ        15 Dec  6 11:23 .ssh -> /etc/config/ssh/
-rw-r--r--    1 admin    administ       923 Dec  6 11:21 .vimrc
-rw-------    1 admin    administ       401 Dec  6 11:28 ccu_key
-rw-r--r--    1 admin    administ      6526 Jul 11  2007 index_default.html
[~] # 
Hier liegt die Datei ccu_key, und das Verzeichniss .shh ist auch zu sehen, als Link auf /etc/config/ssh/
Nicht nach .ssh wechseln, sondern im Homeverzeichniss bleiben.
Jetzt den Schlüssel der CCU zu den erlaubten Keys auf dem NAS hinzufügen:

Code: Alles auswählen

cat ccu_key >> .ssh/authorized_keys
Wenn die Datei authorized_keys schon existiert wird der CCU Schlüssel hinzugefügt, ansosnten wird die Datei angelegt.

Ab jezt hat die CCU auf das NAS SSH Zugriff ohne das nach einem Passwort gefragt wird.
Jetzt kannst du wieder zurück auf die CCU und dort einfach:

Code: Alles auswählen

/usr/bin/ssh [email protected] poweroff
aufrufen. Die CCU verbindet sich per SSH aufs NAS und ruft dort den Befehl poweroff auf. Mein QNAP TS-451pro fährt damit dann herunter (dauert einen kurzen Augenblick).

Wenn das geklappt hat kannst du ein Programm anlegen das den Befehl für dich absetzt. Entweder per CUxD, ich nutze aber direkt system.Exec:

Code: Alles auswählen

string stdout;
string stderr;
system.Exec("/usr/bin/ssh [email protected] poweroff", &stdout, &stderr);
Viele Grüße,
Sven

==== Nachtrag ====
Das Funktioniert natürlich nicht nur mit einem QNAP NAS als Zielsystem, sondern mit allem auf dem ein Linuxbasierendes System läuft. Ein Raspberry lässt sich z.B. per "sudo shutdown" ausschalten.

Cash
Beiträge: 1163
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland

Re: QNAP NAS durch CCU herunterfahren

Beitrag von Cash » 06.12.2016, 12:38

@Sven wann lässt Du Dein Qnap runterfahren?

Einerseits finde ich die Idee nicht schlecht anderseits läuft mein eines Qnap nur jeweils ein paar Stunden für die Datensicherung und das zweite QNap schalte ich Nachts um 01:00 Uhr aus und um 6 Uhr wieder an.

Wenn ich mir jetzt vorstelle, ich lasse das Qnap runterfahren wenn ich Abends ins Bett gehe (zwischen 22-23Uhr) dann spare ich also im günstigsten Fall 3 Stunden pro Tag.

Ersparnis im Jahr vermutlich 5 EUR. Bei Abwesenheit würde ich das Qnap nicht runterfahren da ich auch unterwegs per VPN Zugriff haben will.

Sven_A
Beiträge: 2423
Registriert: 26.01.2016, 08:14
Wohnort: Renningen
Hat sich bedankt: 20 Mal
Danksagung erhalten: 18 Mal

Re: QNAP NAS durch CCU herunterfahren

Beitrag von Sven_A » 06.12.2016, 13:20

Cash hat geschrieben:@Sven wann lässt Du Dein Qnap runterfahren?
Manuel, wenn ich fertig bin.
Das Ding dient bei uns als Datengrab, ich hab auf dem Tablet-Startscreen mit Homedroid eine Sys-Var liegen, die von "aus" auf "starten" gestellt wird. Daraufhin jagt die CCU ein Wake-on-LAN Packet raus, und die Variable wird auf "an" gesetzt. Nachdem die Bilder gesichert,usw. sind wird die Variable auf "ausschalten" gestellt, und die CCU fährt das Ding runter. Unser NAS läuft in der Woche vielleicht 2 bis 3 Stunden...

"An" und "Aus" wird auch anhand des gemessenen Stromverbrauchs (Zwischenstecker) des Serverschranks gesetzt, so das ein ein-/ausschalten am Gerät erkannt wird.

Da ich 3 Platten im NAS habe müsste sich aber auch der Idle-Zustand der Platten mit dem Zwischenstecker ausmessen lassen, und das NAS daraufhin herunter gefahren werden können.

Das WOL Paket zum starten jag ich auch direkt über system.Exec raus, ether-wake ist Bestandteil der CCU Firmware. Das geht dann auch per VPN.

Gruß,
Sven

==== Nachtrag ====
Alternativ hatte ich mir schon überlegt über das Fritzbox-Anweseheits-Plugin ein runterfahren zu realisieren.

Kuddel071089
Beiträge: 52
Registriert: 23.11.2015, 10:04

Re: QNAP NAS durch CCU herunterfahren

Beitrag von Kuddel071089 » 06.12.2016, 13:56

Ich hab das Plugin installiert und mein Nas das erste Mal erfolgreich neugestartet.

Ich werde mir dann jetzt mal einen Schutdown-Task mit Abhängigkeiten etc. bauen.

Ether-Wake wäre auch noch eine interessante Erweiterung für mich.

Wie genau sieht da das Skript aus ?


Bis hier schon einmal viel Dank :-)
CCU 2 mit 2 Dimmaktoren, 1 Funk-Schaltaktor, 4 Rolladenaktoren, 2 Heizkörperthermostate, 2 Fensterkontakte sowie 6 FUnk-Schaltaktroren mit Leistungsmessung
Erweiterungen: CuxD, Email, HM-pdetect

Sven_A
Beiträge: 2423
Registriert: 26.01.2016, 08:14
Wohnort: Renningen
Hat sich bedankt: 20 Mal
Danksagung erhalten: 18 Mal

Re: QNAP NAS durch CCU herunterfahren

Beitrag von Sven_A » 06.12.2016, 13:59

Ich mach das wie gesagt auch über system.Exec
Ich/meine CCU hat keine Probleme damit, aber du weißt ja sicherlich Bescheid.

Code: Alles auswählen

string stdout;
string stderr;
system.Exec("/usr/bin/ether-wake aa:bb:cc:dd:ee:ff", &stdout, &stderr);
aa:bb:cc:dd:ee:ff ist die MAC Adresse des zu weckenden Rechners.

Gruß,
Sven

Kuddel071089
Beiträge: 52
Registriert: 23.11.2015, 10:04

Re: QNAP NAS durch CCU herunterfahren

Beitrag von Kuddel071089 » 07.12.2016, 07:51

Ich habe da noch ein Frage zu meinem Programm.

Das Programm soll in der Zeit von 22 Uhr bis 8 Uhr das NAS ausschalten, wenn mein Media PC aus ist und meint Notebook nciht mehr läuft.

Dazu habe ich folgendes als Auslöser für den Shutdown eingestellt:

Code: Alles auswählen

QNAP ein -> Nur Prüfen
und
Zeitspanne -> Nur prüfen
und
Media PC aus -> Nur prüfen
und
Notebook aus -> Bei Änderung auslösen
und

Code: Alles auswählen

QNAP ein -> Nur Prüfen
und
Zeitspanne -> Nur prüfen
und
Media PC aus -> Bei Änderung auslösen
und
Notebook aus -> Nur prüfen
ISt das korrekt, oder habe ich da einen Denkfehler drin ?
CCU 2 mit 2 Dimmaktoren, 1 Funk-Schaltaktor, 4 Rolladenaktoren, 2 Heizkörperthermostate, 2 Fensterkontakte sowie 6 FUnk-Schaltaktroren mit Leistungsmessung
Erweiterungen: CuxD, Email, HM-pdetect

Sven_A
Beiträge: 2423
Registriert: 26.01.2016, 08:14
Wohnort: Renningen
Hat sich bedankt: 20 Mal
Danksagung erhalten: 18 Mal

Re: QNAP NAS durch CCU herunterfahren

Beitrag von Sven_A » 07.12.2016, 08:35

Nacherzählte Programm sind immer doof. Screenshots sind besser.

Ist das ein Programm oder 2? Wenn das ein Programm ist kannst du gleich bei MediaPC und Laptop "auf Änderung auslösen", das musst du nicht in 2 Blöcke packen.
Ansonsten klingt das soweit korrekt.
Nein, doch nicht. Wenn beim erreichen der Zeitspanne schon beide PCs aus sind bleibt das NAS an. Daher auch die Zeitspanne "zu Zeitpunkten auslösen" stellen:

Code: Alles auswählen

    QNAP ein -> Nur Prüfen
    und
    Zeitspanne -> Zu Zeitpunkten auslösen
    und
    Media PC aus -> Bei Änderung auslösen
    und
    Notebook aus -> Bei Änderung auslösen

Kuddel071089
Beiträge: 52
Registriert: 23.11.2015, 10:04

Re: QNAP NAS durch CCU herunterfahren

Beitrag von Kuddel071089 » 07.12.2016, 08:53

Sven_A hat geschrieben:Nacherzählte Programm sind immer doof. Screenshots sind besser.

Ist das ein Programm oder 2? Wenn das ein Programm ist kannst du gleich bei MediaPC und Laptop "auf Änderung auslösen", das musst du nicht in 2 Blöcke packen.
Ansonsten klingt das soweit korrekt.
Nein, doch nicht. Wenn beim erreichen der Zeitspanne schon beide PCs aus sind bleibt das NAS an. Daher auch die Zeitspanne "zu Zeitpunkten auslösen" stellen:

Code: Alles auswählen

    QNAP ein -> Nur Prüfen
    und
    Zeitspanne -> Zu Zeitpunkten auslösen
    und
    Media PC aus -> Bei Änderung auslösen
    und
    Notebook aus -> Bei Änderung auslösen
Das heißt, das NAS wird wirklich nur heruntergefahren wenn der Media-PC (Kodi) und mein Notebook (Smasung) aus sind ?

Bild
CCU 2 mit 2 Dimmaktoren, 1 Funk-Schaltaktor, 4 Rolladenaktoren, 2 Heizkörperthermostate, 2 Fensterkontakte sowie 6 FUnk-Schaltaktroren mit Leistungsmessung
Erweiterungen: CuxD, Email, HM-pdetect

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“