Installation von FHEM auf einem QNAP NAS
Update 10.02.2014
[NAS Typ:] TS-xxx
[Firmware:] 4.0.X
[Getestet:] ja
[Sonstige Modifikationen:] keine
Diese Anleitung beschreibt detailiert, wie FHEM auf einer QNAP Turbo Station TS-221 installiert werden kann. Im wesentlichen wird die Vorgehensweise auch für weitere QNAP NAS gelten.
Die Anleitung stammt im Orginal von http://www.fhemwiki.de/wiki/Qnap_NAS und wurde von mir mithilfe von http://forum.qnapclub.de/viewt…158936&hilit=fhem#p158936
und http://wiki.qnap.com/wiki/Runn…t_Startup#Skills_required
modifiziert.
Überblick
Die aktuelle QNAP Firmware 4.0.X unterstützt die Installation von IPKG Paketen. Sämtliche für FHEM benötigte Software ist auf diese Weise verfügbar, so dass die Installation eigentlich sehr einfach vonstatten gehen könnte. Leider hat QNAP an einigen Stellen geschlampt und man muss von Hand etwas nachhelfen. Desweiteren ist Handarbeit gefragt für folgende Zusatzfunktionen
Auslagerung der FHEM Logfiles auf einen Speicherstick. Somit kann die interne Festplatte weiterhin in den Spin Down gehen.
• Autostart von FHEM beim Booten des NAS
• Geordnetes Runterfahren von FHEM beim Herunterfahren des NAS
QNAP Konfiguration
... mit Einzeldisks
hier ist in den verschiedensten Pfadangaben "HDA_DATA" zu verwenden
... mit RAID
hier ist in den verschiedensten Pfadangaben "HDA_DATA" in "MD0_DATA" auszutauschen
wer nicht weiß wie seine QNAP konfiguriert ist checkt es mit
... und kuckt welcher Ordner in Verwendung ist!
Installation des QPKG Paketes Optware IPKG
Über die NAS Web-Administration(App Center) kann das Optware IPKG Paket installiert werden.
Telnet starten
Zusätzliches Installationsziel für ipkg in die Config aufnehmen
Die Kernel Module werden sonst nach /lib/modules installiert, und das wird bei jedem reboot überschrieben.
Also müssen sie explizit nach /opt/lib/modules installiert werden.
Hinzufügen von: (Taste i für Einfügemodus)
Speichern und Exit (ESC :wq)
Paketliste aktualisieren
Benötigte Pakete für fhem installieren
ipkg install perl perl-device-serialportipkg install make # für die fhem Installationipkg install gcc # richtige libgcc für perlipkg install gnuplot # optional, falls lediglich plotmode SVG verwendet
FHEM Installieren
Fhem am PC downloaden und in ein QNAP Public Verzeichniss auspacken z.B.
/share/Public/fhem
Ins Download Verzeichniss wechseln
Pfade im Makefile auf /opt/ .... ändern
Ändern in: (Taste i für Einfügemodus)
Speichern und Exit (ESC :wq)
Logverzeichniss anlegen
Dieses Verzeichniss wird später auf einen Speicherstick ausgelagert.
Installieren
Pfad von perl in fhem.pl anpassen
ACHTUNG, dies ist evtl. nach einem FHEM update zu wiederholen, also nach jedem update checken
Ändern in: (Taste i für Einfügemodus)
Speichern und Exit (ESC :wq)
Konfigfile nach /opt/etc kopieren und editieren
Hinzufügen von: (Taste i für Einfügemodus)
attr global logfile /opt/var/log/fhem/fhem-%Y-%V.log attr global statefile /opt/var/log/fhem/fhem.savestate
Speichern und Exit (ESC :wq)
Probeweise starten
Stoppen
Logfiles auf USB-Stick auslagern
Stick anstöpseln und prüfen, wo er gemounted wurde
Ausgabe z.B.:
/dev/sdq1 on /share/external/sdq1 type vfat (rw,utf8,dmask=0000,fmask=0111,shortname=mixed)
Lokale Logfiles verschieben und verlinken
cd /opt/var/logcp -r fhem /share/external/sdq1mv fhem fhem.localln -s /share/external/sdq1/fhem
FHEM QPKG-based start-/stopbar machen
Editiren des QPKG config file:
QPK Paket definieren: z.B.
Hinzufügen von: (Taste i für Einfügemodus)
[FHEM] Name = fhem Version = 5.5 Author = Kai Date = 2013-12-30 Shell = /share/HDA_DATA/.qpkg/fhem/fhemstart.sh Install_Path = /share/HDA_DATA/.qpkg/fhem QPKG_File = fhemstart.qpkg Enable = TRUE
Speichern und Exit (ESC :wq)
dummy package directory erstellen:
Erstellen des autorun script:
Hinzufügen von: (Taste i für Einfügemodus)
#!/bin/sh # by Matthias Bauer # modified by Kai case "$1" in start) echo "Starting $0" /opt/bin/fhem/fhem.pl /opt/etc/fhem.cfg### Nur nötig wenn die Prozesspriorität von FHEM erhöht werden muß ###### sleep 5 Prozess=`pidof fhem.pl` renice -10 $Prozess######################################################################### ;; stop) echo "Stopping $0" /opt/bin/fhem/fhem.pl 7072 shutdown ;; status) cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l` if [ "$cnt" -eq "0" ] ; then echo "$0 is not running" else echo "$0 is running" fi ;; *) echo "Usage: $0 {start|stop|status}" exit 1 esac exit 0
Speichern und Exit (ESC :wq)
Ausführbar machen:
... und fertig.
FHEM kann nun per App Center gestartet und gestoppt werden