FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: Thorlaroid am 31 Juli 2016, 18:33:26

Titel: Extern USB-Platte schalten durch Unmount bei Synology DSM
Beitrag von: Thorlaroid am 31 Juli 2016, 18:33:26
Nach längerer Zeit habe ich endlich eine Lösung für mein Problem gefunden. Die Lösung teile ich nun auch gerne mit Euch.

Problem:
Auf meiner Synology NAS läuft jede Nacht ein Backup von Daten und dem System auf ein externes USB-Laufwerk. Das USB-Laufwerk ist eine 5-Bay RAID Station von Sharkoon, was nicht das leistete Gerät ist. Die Idee war also, dass FHEM einen Power-Switch vor dem Backup anstellt und nach dem Backup wieder abstellt. Das Anstellen ist natürlich kein Problem, da man dies ohne Probleme mit FHEM terminieren kann. Die Herausforderung ist die Herausforderung, bei der folgende Lösungsansätze leider nicht funktioniert haben:

Die Lösung ist also, dass die NAS ein Signal geben muss, wenn das Backup durchgelaufen ist. Leider kann das Synology DSM maximal das USB-Laufwerk unmounten. Dies habe ich als Ansatz genommen. Die Lösungsschritte in der Kurzform sind:

Nun die Schritte zum einrichten mit dem notwendigen Code:
Backup Job
Der Backup Job im Hyper Backup Manager einstellen. Mein Backup läuft einmal am Tag um 1:00 Uhr an. Wichtig ist, dass Ihr den Harken setzt, der bewirkt, dass die Usb-Fastplatte nach dem Backup ausgeworfen wird.

Einstellungen in FHEM
################# Schaltung Backup ######################

define ThorBackupStatus dummy #Wird vom Skript auf der NAS an und ausgestellt
attr ThorBackupStatus devStateIcon on:it_remote_folder@green off:it_remote_folder@red
attr ThorBackupStatus room Arbeitszimmer
attr ThorBackupStatus webCmd on:off


### An ###
define Arbeitszimmer.Backup.On at *00:55:00 set FBDECT_16 on    #FBDECT_16 der Schalter an der USB-Festplatte; Wird 5 Minuten vor dem Backup geschaltet
define ThorBackupStatus.on notify ThorBackupStatus:on set FBDECT_16 on    #Nicht zwingend notwendig, aber so stimmt die Anzeige in FHEM ;)
### Aus ###
define ThorBackupStatus.off notify ThorBackupStatus:off set FBDECT_16 off   #Wenn das Dummy auf aus geht, weird auch der Schalter an der USB-Fastplatte ausgestellt.


Skript auf der NAS
Im Synology DSM findet Ihr unter Systemsteuerung den Punkt Aufgabenplaner. Unter Erstellen den Punkt Geplante Aufgabe -> Benutzerdefiniertes Skript auswählen. Unter Allgemein könnt Ihr einen freien Namen wählen. Der Benutzer muss root sein.
Die Einstellungen unter Zeitplan sind abhängig davon, wie häufig Euer Backup läuft. Ich habe Täglich, von 0:00-23.55, alle 5 Minuten eingestellt.
Unten Aufgabeneinstellungen könnte Ihr das folgende Skript ergänzen:

volume="/volumeUSB1/usbshare"
mount | grep "on ${volume} type" > /dev/null
if [ $? -eq 0 ]
then
DATA=$(wget -O - -q -t 1 http://192.168.178.101:8083/fhem?cmd=set%20ThorBackupStatus%20on)
else
DATA=$(wget -O - -q -t 1 http://192.168.178.101:8083/fhem?cmd=set%20ThorBackupStatus%20off)
fi

Zur Erläuterung:

Volume Name und Pfad identifizieren
Benötigt Ihr den Namen und Pfad des USB Laufwerks, dann geht wie folgt vor:

Ich hoffe es ist für Euch nachvollziehbar und hilfreich.
Titel: Antw:Extern USB-Platte schalten durch Unmount bei Synology DSM
Beitrag von: StefanP am 31 Juli 2016, 21:15:07
Danke für den Beitrag. Auch auf die Gefahr, dass ich mich mal wieder als Komplett-Unwissender oute: wo ist denn da json?

Vorab danke für die Erleuchtung!

Gruß StefanP
Titel: Antw:Extern USB-Platte schalten durch Unmount bei Synology DSM
Beitrag von: Thorlaroid am 01 August 2016, 20:49:45
Zitat von: StefanP am 31 Juli 2016, 21:15:07
Danke für den Beitrag. Auch auf die Gefahr, dass ich mich mal wieder als Komplett-Unwissender oute: wo ist denn da json?

Vorab danke für die Erleuchtung!

Gruß StefanP

Hinter dem URL Aufruf versteckt sich meiner Interpretation nach ein JSON Befehl.
Titel: Antw:Extern USB-Platte schalten durch Unmount bei Synology DSM
Beitrag von: Wernieman am 15 August 2016, 10:41:05
Auch wenn es jetzt etwas her ist .. aber hat die Synology auf Shell-Ebene nicht den "nc"-Befehl?

Damit könnte sie dem FHEM Befehle "zuschmeisen"